| 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 | topdir = .. |
|---|
| 18 | MAKEDIR = $(topdir)/mk |
|---|
| 19 | include $(MAKEDIR)/embedded.mk |
|---|
| 20 | |
|---|
| 21 | CFLAGS += -D__MSDOS__ |
|---|
| 22 | # CFLAGS += -DDEBUG |
|---|
| 23 | |
|---|
| 24 | LDFLAGS = -T dosexe.ld |
|---|
| 25 | OPTFLAGS = -g |
|---|
| 26 | INCLUDES = -include code16.h -nostdinc -iwithprefix include \ |
|---|
| 27 | -I. -I.. -I../libfat -I ../libinstaller -I ../libinstaller/getopt |
|---|
| 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 ../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 = .:../libfat:../libinstaller:../libinstaller/getopt |
|---|
| 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 ../core/ldlinux.sys |
|---|
| 78 | |
|---|
| 79 | -include .*.d *.tmp |
|---|