Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROJECT = kernel
- CC = arm-none-eabi-gcc
- AS = arm-none-eabi-as
- OBJCOPY = arm-none-eabi-objcopy
- CFLAGS = -std=c99 -Wall -O2 -nostdlib -nostartfiles -ffreestanding
- SRCDIR = src
- LDFLAGS = -T $(SRCDIR)/memmap -lm
- BUILDDIR = build
- BINARY = $(BUILDDIR)/$(PROJECT)
- CFILES = $(wildcard $(SRCDIR)/*.c)
- OBJFILES = $(patsubst $(SRCDIR)/%.c,$(BUILDDIR)/%.o,$(CFILES))
- SFILES = $(wildcard $(SRCDIR)/*.s)
- OBJFILES += $(patsubst $(SRCDIR)/%.s,$(BUILDDIR)/%.o,$(SFILES))
- DEPENDFILE = .makedepends
- all: depend $(BINARY).img $(BINARY).hex
- .PHONY: clean
- clean:
- rm -rf $(BUILDDIR)
- rm -f $(DEPENDFILE)
- .PHONY: depend
- depend: $(SRC)
- $(CC) -MM $(CFILES) > $(DEPENDFILE)
- $(BUILDDIR):
- mkdir -p $(BUILDDIR)
- $(BINARY).elf: $(OBJFILES)
- $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
- $(BINARY).img : $(BINARY).elf
- $(OBJCOPY) $< -O binary $@
- $(BINARY).hex : $(BINARY).elf
- $(OBJCOPY) $< -O ihex $@
- $(BUILDDIR)/%.o: $(SRCDIR)/%.c $(BUILDDIR)
- $(CC) $(CFLAGS) -c -o $@ $<
- $(BUILDDIR)/%.o : $(SRCDIR)/%.s
- $(AS) -o $@ $<
- -include $(DEPENDFILE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement