[e16e8f2] | 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 |
---|