Home | History | Annotate | Download | only in dos
      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