changing Makefile system a bit, again
git-svn-id: svn://anubis/hos/trunk@19 5b3e749e-e535-0410-8002-a9bb6afbdfca
This commit is contained in:
1 parent
8fe8d78051
commit
a5ca4348d9
2 files changed
+64
-19
No files matched your search
+31
-19
@@ -1,23 +1,31 @@
|
||||
|
||||
KERNEL := hos
|
||||
LDFLAGS := -T link.ld
|
||||
|
||||
export PLATFORM := $(shell if [[ `uname` =~ "CYGWIN" ]]; then \
|
||||
echo cygwin; \
|
||||
else \
|
||||
echo unix; \
|
||||
fi)
|
||||
ifeq ($(PLATFORM), cygwin)
|
||||
export LD := i586-elf-ld
|
||||
export CC := i586-elf-gcc
|
||||
export CXX := i586-elf-g++
|
||||
else
|
||||
export LD := ld
|
||||
export CC := gcc
|
||||
export CXX := g++
|
||||
endif
|
||||
export NASM := nasm
|
||||
|
||||
ifeq ($(PLATFORM), cygwin)
|
||||
export LD := i586-elf-ld
|
||||
export CC := i586-elf-gcc
|
||||
export CXX := i586-elf-g++
|
||||
else
|
||||
export LD := ld
|
||||
export CC := gcc
|
||||
export CXX := g++
|
||||
endif
|
||||
export NASM := nasm
|
||||
|
||||
WD := $(shell pwd)
|
||||
LDSCRIPT := link.ld
|
||||
KERNEL := hos
|
||||
export CPPFLAGS := -I$(WD)/include
|
||||
export CFLAGS := -Wall -O2
|
||||
export CXXFLAGS := -Wall -O2
|
||||
export LDFLAGS := -T $(LDSCRIPT)
|
||||
|
||||
SUBDIRS := boot
|
||||
SUBDIRS_clean := $(subdirs:%=%.clean)
|
||||
|
||||
.PHONY: all
|
||||
all: $(KERNEL).gz
|
||||
@@ -25,12 +33,16 @@ all: $(KERNEL).gz
|
||||
$(KERNEL).gz: $(KERNEL)
|
||||
gzip -c $< > $@
|
||||
|
||||
$(KERNEL): boot.o
|
||||
$(LD) $(LDFLAGS) -o $@ $<
|
||||
$(KERNEL): $(SUBDIRS)
|
||||
$(LD) $(LDFLAGS) -o $@ $(SUBDIRS:%=%/%.o)
|
||||
|
||||
boot.o: boot.asm
|
||||
$(NASM) -f elf -o $@ $<
|
||||
.PHONY: $(SUBDIRS)
|
||||
$(SUBDIRS):
|
||||
$(MAKE) -C $@
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
-rm -f *~ $(KERNEL) $(KERNEL).gz *.o
|
||||
clean: $(SUBDIRS_clean)
|
||||
-rm -f *~ $(KERNEL) $(KERNEL).gz
|
||||
|
||||
%.clean:
|
||||
$(MAKE) -C $* clean clean=1
|
||||
Reference in new issue
Block a user