1 ## ----------------------------------------------------------------------- 2 ## 3 ## Copyright 2001-2008 H. Peter Anvin - All Rights Reserved 4 ## 5 ## This program is free software; you can redistribute it and/or modify 6 ## it under the terms of the GNU General Public License as published by 7 ## the Free Software Foundation, Inc., 53 Temple Place Ste 330, 8 ## Boston MA 02111-1307, USA; either version 2 of the License, or 9 ## (at your option) any later version; incorporated herein by reference. 10 ## 11 ## ----------------------------------------------------------------------- 12 13 ## 14 ## MS-DOS FAT installer 15 ## 16 17 include $(MAKEDIR)/embedded.mk 18 19 CFLAGS += -D__MSDOS__ -mregparm=3 -DREGPARM=3 20 # CFLAGS += -DDEBUG 21 22 LDFLAGS = -T $(SRC)/dosexe.ld 23 OPTFLAGS = -g 24 INCLUDES = -include code16.h -nostdinc -iwithprefix include \ 25 -I$(SRC) -I$(SRC)/.. -I$(SRC)/../libfat \ 26 -I $(SRC)/../libinstaller -I $(SRC)/../libinstaller/getopt \ 27 -I$(objdir) 28 29 SRCS = syslinux.c \ 30 ../libinstaller/fs.c \ 31 ../libinstaller/syslxmod.c \ 32 ../libinstaller/syslxopt.c \ 33 ../libinstaller/setadv.c \ 34 ../libinstaller/getopt/getopt_long.c \ 35 ../libinstaller/bootsect_bin.c \ 36 ../libinstaller/mbr_bin.c \ 37 $(wildcard $(SRC)/../libfat/*.c) 38 OBJS = header.o crt0.o ldlinux.o \ 39 $(patsubst %.c,%.o,$(notdir $(SRCS))) 40 LIBOBJS = int2526.o conio.o memcpy.o memset.o memmove.o skipatou.o atou.o \ 41 malloc.o free.o getopt_long.o getsetsl.o strchr.o strtoul.o \ 42 strntoumax.o argv.o printf.o __divdi3.o __udivmoddi4.o 43 44 VPATH = $(SRC):$(SRC)/../libfat:$(SRC)/../libinstaller:$(SRC)/../libinstaller/getopt:$(OBJ)/../libinstaller 45 46 TARGETS = syslinux.com 47 48 all: $(TARGETS) 49 50 tidy dist: 51 -rm -f *.o *.i *.s *.a .*.d *.tmp *.elf *.lst 52 53 clean: tidy 54 55 spotless: clean 56 -rm -f *~ $(TARGETS) 57 58 installer: 59 60 syslinux.elf: $(OBJS) dosexe.ld libcom.a 61 $(LD) $(LDFLAGS) -o $@ $(OBJS) libcom.a 62 63 libcom.a: $(LIBOBJS) 64 -rm -f $@ 65 $(AR) cq $@ $^ 66 $(RANLIB) $@ 67 68 syslinux.com: syslinux.elf 69 $(OBJCOPY) -O binary $< $@ 70 $(UPX) --lzma --ultra-brute $@ || \ 71 $(UPX) --ultra-brute $@ || \ 72 true 73 74 %.com: %.asm 75 $(NASM) $(NASMOPT) -f bin -o $@ -MP -MD .$@.d -l $*.lst $< 76 77 ldlinux.o: ldlinux.S $(OBJ)/../core/ldlinux.sys 78 79 -include .*.d 80