LIBGCC := $(shell $(CC) $(GCCOPT) --print-libgcc)
LD += -m elf_i386
-CFLAGS = $(GCCOPT) -g -W -Wall $(OPTFLAGS) $(INCLUDES)
+CFLAGS = $(GCCOPT) -g -W -Wall -Wno-sign-compare $(OPTFLAGS) $(INCLUDES)
SFLAGS = $(CFLAGS) -D__ASSEMBLY__
.SUFFIXES: .c .o .S .s .i .elf .com .bin .asm .lst .c32 .lss
+%.o: %.c
+ $(CC) $(MAKEDEPS) $(CFLAGS) -c -o $@ $<
+%.i: %.c
+ $(CC) $(MAKEDEPS) $(CFLAGS) -E -o $@ $<
+%.s: %.c
+ $(CC) $(MAKEDEPS) $(CFLAGS) -S -o $@ $<
+%.o: %.S
+ $(CC) $(MAKEDEPS) $(SFLAGS) -Wa,-a=$*.lst -c -o $@ $<
+%.s: %.S
+ $(CC) $(MAKEDEPS) $(SFLAGS) -E -o $@ $<
$(OBJCOPY) -O binary $< $@
%.o: %.asm kwdhash.gen ../version.gen
- ( $(NASM) -DDEPEND $(NINCLUDE) -o $@ -M $< && echo '' ) > .$@.d; true
+ ( $(NASM) -DDEPEND $(NINCLUDE) -o $@ -M $< ; echo '' ) > .$@.d; true
$(NASM) $(NASMOPT) -f elf -g -F stabs -DDATE_STR="'$(DATE)'" \
-DHEXDATE="$(HEXDATE)" \
-l $(@:.o=.lsr) -o $@ $<
syslinux.com: syslinux.elf
$(OBJCOPY) -O binary $< $@
-%.o: %.c
- $(CC) $(MAKEDEPS) $(CFLAGS) -c -o $@ $<
-%.i: %.c
- $(CC) $(MAKEDEPS) $(CFLAGS) -E -o $@ $<
-%.s: %.c
- $(CC) $(MAKEDEPS) $(CFLAGS) -S -o $@ $<
-%.o: %.S
- $(CC) $(MAKEDEPS) $(CFLAGS) -D__ASSEMBLY__ -c -o $@ $<
-%.s: %.S
- $(CC) $(MAKEDEPS) $(CFLAGS) -D__ASSEMBLY__ -E -o $@ $<
%.com: %.asm
+ ( $(NASM) -DDEPEND $(NASMOPT) -o $@ -M $< && echo '' ) > .$@.d; true
$(NASM) $(NASMOPT) -f bin -o $@ -l $*.lst $<
-include .*.d *.tmp
mbr_f.bin altmbr_f.bin gptmbr_f.bin isohdpfx_f.bin
.PRECIOUS: %.o
-%.o: %.S adjust.h
+%.o: %.S
$(CC) $(MAKEDEPS) $(SFLAGS) -Wa,-a=$*.lst -c -o $@ $<
-%_c.o: %.S adjust.h
+%_c.o: %.S
$(CC) $(MAKEDEPS) $(SFLAGS) -Wa,-a=$*_c.lst -DCTRL_80 -c -o $@ $<
-%_f.o: %.S adjust.h
+%_f.o: %.S
$(CC) $(MAKEDEPS) $(SFLAGS) -Wa,-a=$*_f.lst -DFORCE_80 -c -o $@ $<
.PRECIOUS: %.elf
include $(topdir)/MCONFIG.embedded
-include $(topdir)/version.mk
-CFLAGS = $(GCCOPT) -g -W -Wall -Wno-sign-compare -DDATE='"$(DATE)"'
-SFLAGS = $(GCCOPT) -D__ASSEMBLY__
+INCLUDES = -I$(topdir)/com32/include
+CFLAGS += -DDATE='"$(DATE)"'
LDFLAGS = $(GCCOPT) -g
-INCLUDE = -I$(topdir)/com32/include
NASM = nasm
NASMOPT = -O9999
NFLAGS = -dDATE='"$(DATE)"'
# tidy, clean removes everything except the final binary
tidy dist:
- rm -f *.o *.s *.tmp *.o16 *.s16 *.bin *.lst *.elf e820test
+ rm -f *.o *.s *.tmp *.o16 *.s16 *.bin *.lst *.elf e820test .*.d
clean: tidy
rm -f memdisk .depend
memdisk16.o: memdisk16.asm
- $(NASM) $(NASMOPT) $(NFLAGS) $(NINCLUDE) -f elf -l $*.lst -o $@ $<
-%.o: %.s
- $(CC) $(SFLAGS) -c -o $@ $<
+# Cancel rule
+%.o: %.asm
-%.o: %.S
- $(CC) $(INCLUDE) $(SFLAGS) -c -o $@ $<
-
-%.o16: %.s16
- $(CC) $(SFLAGS) -x assembler -c -o $@ $<
-
-%.o: %.c
- $(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $<
-
-%.s16: %.s
- echo '.code16gcc' | cat - $< > $@
-
-%.s: %.S
- $(CC) $(INCLUDE) $(SFLAGS) -E -o $@ $<
-
-%.s16: %.S16
- $(CC) $(INCLUDE) $(SFLAGS) -x assembler-with-cpp -E -o $@ $<
-
-%.s: %.c
- $(CC) $(INCLUDE) $(CFLAGS) -S -o $@ $<
-
-%.i: %.c
- $(CC) $(INCLUDE) $(CFLAGS) -E -o $@ $<
-
-# Cancel default rule
-%.o: %.c
+memdisk16.o: memdisk16.asm
+ ( $(NASM) -DDEPEND $(NFLAGS) $(NINCLUDE) -o $@ $< ; echo '' ) >> .$@.d ; true
+ $(NASM) -f elf $(NASMOPT) $(NFLAGS) $(NINCLUDE) -o $@ -l $*.lst $<
+.PRECIOUS: %.bin
%.bin: %.asm
+ ( $(NASM) -DDEPEND $(NFLAGS) $(NINCLUDE) -o $@ $< ; echo '' ) >> .$@.d ; true
$(NASM) -f bin $(NASMOPT) $(NFLAGS) $(NINCLUDE) -o $@ -l $*.lst $<
memdisk_%.o: memdisk_%.bin
e820test: e820test.c e820func.c msetup.c
$(CC) -m32 -g -W -Wall -DTEST -o $@ $^
-.depend:
- rm -f .depend
- for csrc in *.c ; do $(CC) $(INCLUDE) $(CFLAGS) -MM $$csrc >> .depend ; done ; true
- for ssrc in *.S ; do $(CC) $(INCLUDE) $(SFLAGS) -MM $$ssrc >> .depend ; done ; true
- for nsrc in $(NASMSRC) ; do \
- ( $(NASM) -DDEPEND $(NINCLUDE) -o \
- `echo $$nsrc | sed -e 's/\.asm/\.bin/'` -M $$nsrc ; \
- echo '' ) >> .depend ; done ; true
-
-depend:
- rm -f .depend
- $(MAKE) .depend
-
# This file contains the version number, so add a dependency for it
setup.s: ../version
# Include dependencies file
--include .depend
+-include .*.d
;
; ****************************************************************************
-%ifndef DEPEND
-%include "../version.gen"
-%endif
+%include "../version.gen"
; %define DEBUG_TRACERS ; Uncomment to get debugging tracers
$(OBJCOPY) -O binary $< $@
%.o: %.c
- $(CC) -Wp,-MT,$@,-MD,.$@.d $(CFLAGS) -c -o $@ $<
+ $(CC) $(MAKEDEPS) $(CFLAGS) -c -o $@ $<
%.i: %.c
- $(CC) $(CFLAGS) -E -o $@ $<
+ $(CC) $(MAKEDEPS) $(CFLAGS) -E -o $@ $<
%.s: %.c
- $(CC) $(CFLAGS) -S -o $@ $<
+ $(CC) $(MAKEDEPS) $(CFLAGS) -S -o $@ $<
%.o: %.S
- $(CC) -Wp,-MT,$@,-MD,.$@.d $(CFLAGS) -D__ASSEMBLY__ -c -o $@ $<
+ $(CC) $(MAKEDEPS) $(SFLAGS) -c -o $@ $<
%.s: %.S
- $(CC) $(CFLAGS) -E -o $@ $<
+ $(CC) $(MAKEDEPS) $(SFLAGS) -E -o $@ $<
-include .*.d *.tmp
all: $(BINS)
.PRECIOUS: %.o
-%.o: %.S
- $(CC) $(SFLAGS) -c -o $@ $<
-
-.PRECIOUS: %.o
-%.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
.PRECIOUS: %.elf
%.elf: c32entry.o %.o $(LIB)
$(OBJCOPY) -O binary $< $@
%.com: %.asm
+ ( $(NASM) -DDEPEND -o $@ $< ; echo '' ) >> .$@.d ; true
$(NASM) $(NASMOPT) -f bin -o $@ -l $*.lst $<
$(LIB): $(LIBOBJS)
$(PNGTOPNM) $< | gzip -9 > $@
tidy dist:
- rm -f *.o *.a *.lst *.elf
+ rm -f *.o *.a *.lst *.elf .*.d
clean: tidy
spotless: clean
rm -f $(BINS)
+
+-include .*.d
fd.c32 $(LIB)
.PRECIOUS: %.o
-%.o: %.S
- $(CC) $(SFLAGS) -c -o $@ $<
-
-.PRECIOUS: %.o
-%.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
.PRECIOUS: %.elf
%.elf: c32entry.o %.o $(LIB)
$(OBJCOPY) -O binary $< $@
%.com: %.asm
+ ( $(NASM) -DDEPEND -o $@ $< ; echo '' ) >> .$@.d ; true
$(NASM) $(NASMOPT) -f bin -o $@ -l $*.lst $<
$(LIB): $(LIBOBJS)
$(PNGTOPNM) $< | gzip -9 > $@
tidy dist:
- rm -f *.o *.a *.lst *.elf
+ rm -f *.o *.a *.lst *.elf .*.d
# Don't specify *.com since mdiskchk.com can't be built using Linux tools
clean: tidy
rm -f *.lss *.o *.c32 comecho.com
spotless: clean
+
+-include .*.d