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 |
---|