prdhcp.c32: Print DHCP packets
[profile/ivi/syslinux.git] / mbr / Makefile
index 7aa56ea..993bb10 100644 (file)
@@ -1,6 +1,7 @@
 ## -----------------------------------------------------------------------
 ##
-##   Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
+##   Copyright 2007-2009 H. Peter Anvin - All Rights Reserved
+##   Copyright 2009 Intel Corporation; author: H. Peter Anvin
 ##
 ##   This program is free software; you can redistribute it and/or modify
 ##   it under the terms of the GNU General Public License as published by
 # Makefile for MBR
 #
 
-TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+topdir = ..
+MAKEDIR = $(topdir)/mk
+include $(MAKEDIR)/embedded.mk
 
-gcc_ok   = $(shell tmpf=$(TMPFILE); if $(CC) $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
-                  then echo $(1); else echo $(2); fi; rm -f $$tmpf)
+all:   mbr.bin   altmbr.bin   gptmbr.bin   isohdpfx.bin   isohdppx.bin \
+       mbr_c.bin altmbr_c.bin gptmbr_c.bin isohdpfx_c.bin isohdppx_c.bin \
+       mbr_f.bin altmbr_f.bin gptmbr_f.bin isohdpfx_f.bin isohdppx_f.bin
 
-M32       := $(call gcc_ok,-m32,) $(call gcc_ok,-ffreestanding,) $(call gcc_ok,-fno-stack-protector)
-
-CC         = gcc
-LD         = ld 
-LDFLAGS           = -m elf_i386
-SFLAGS    = $(M32) -march=i386
-OBJCOPY           = objcopy
-PERL      = perl
-
-.SUFFIXES: .S .s .o .elf
-
-all:   mbr.bin mbr_bin.c gptmbr.bin gptmbr_bin.c 
-
-.PRECIOUS: %.o
 %.o: %.S
-       $(CC) $(SFLAGS) -Wa,-a=$*.lst -c -o $@ $<
+       $(CC) $(MAKEDEPS) $(SFLAGS) -Wa,-a=$*.lst -c -o $@ $<
+
+%_c.o: %.S
+       $(CC) $(MAKEDEPS) $(SFLAGS) -Wa,-a=$*_c.lst -DCTRL_80 -c -o $@ $<
 
-%_bin.c: %.bin ../bin2c.pl
-       $(PERL) ../bin2c.pl syslinux_$* < $< > $@
+%_f.o: %.S
+       $(CC) $(MAKEDEPS) $(SFLAGS) -Wa,-a=$*_f.lst -DFORCE_80 -c -o $@ $<
 
-mbr.elf: mbr.o mbr.ld
+.PRECIOUS: %.elf
+%.elf: %.o mbr.ld
        $(LD) $(LDFLAGS) -T mbr.ld -e _start -o $@ $<
 
-mbr.bin: mbr.elf checksize.pl
+%.bin: %.elf checksize.pl
        $(OBJCOPY) -O binary $< $@
-       $(PERL) checksize.pl mbr.bin 440
+       $(PERL) checksize.pl $@
+       $(CHMOD) -x $@
 
 mbr_bin.c: mbr.bin
 
-gptmbr.elf: gptmbr.o mbr.ld
-       $(LD) $(LDFLAGS) -T mbr.ld -e _start -o $@ $<
-
-gptmbr.bin: gptmbr.elf checksize.pl
-       $(OBJCOPY) -O binary $< $@
-       $(PERL) checksize.pl gptmbr.bin 424
-
 tidy dist:
-       rm -f *.o *.elf *.lst
+       rm -f *.o *.elf *.lst .*.d
 
 clean: tidy
 
 spotless: clean
        rm -f *.bin
+
+-include .*.d