.c.o:
$(CC) $(CFLAGS) -c $<
+#
+# The BTARGET refers to objects that are derived from ldlinux.asm; we
+# like to keep those uniform for debugging reasons; however, distributors
+# want to recompile the installers (ITARGET).
+#
SOURCES = ldlinux.asm syslinux.asm syslinux.c copybs.asm
-TARGETS = bootsect.bin ldlinux.sys syslinux.com syslinux copybs.com
+BTARGET = bootsect.bin ldlinux.sys stupid.c stupid.inc ldlinux.bin ldlinux.lst
+ITARGET = syslinux.com syslinux copybs.com
DOCS = COPYING NEWS README TODO syslinux.doc keytab-lilo.doc
OTHER = Makefile bin2c.pl now.pl genstupid.pl keytab-lilo.pl version
-all: $(TARGETS)
- ls -l $(TARGETS)
+all: $(BTARGET) $(ITARGET)
+ ls -l $(BTARGET) $(ITARGET)
+
+installer: $(ITARGET)
+ ls -l $(BTARGET) $(ITARGET)
# The DATE is set on the make command line when building binaries for
# official release. Otherwise, substitute a hex string that is pretty much
# guaranteed to be unique to be unique from build to build.
ifndef HEXDATE
-HEXDATE = $(shell perl now.pl ldlinux.asm)
+HEXDATE := $(shell perl now.pl ldlinux.asm)
endif
ifndef DATE
-DATE = $(HEXDATE)
+DATE := $(HEXDATE)
endif
ldlinux.bin: ldlinux.asm genstupid.pl
install -c syslinux $(BINDIR)
tidy:
- rm -f ldlinux.bin *.lst *.o *_bin.c stupid.*
+ rm -f syslinux.lst *.o *_bin.c
clean: tidy
- rm -f $(TARGETS)
+ rm -f $(ITARGET)
+
+spotless: clean
+ rm -f $(BTARGET)
dist: tidy
rm -f *~ \#*
.PHONY: official release
official:
- $(MAKE) clean
+ $(MAKE) spotless
$(MAKE) all DATE=`date +'%Y-%m-%d'`
$(MAKE) dist
-rm -f $(PRERELDIR)/$(PREREL).*
mkdir -p $(PRERELDIR)/$(PREREL)
cp $(SOURCES) $(DOCS) $(OTHER) $(PRERELDIR)/$(PREREL)
- make -C $(PRERELDIR)/$(PREREL) clean
+ make -C $(PRERELDIR)/$(PREREL) spotless
make -C $(PRERELDIR)/$(PREREL) HEXDATE="$(DATE)"
make -C $(PRERELDIR)/$(PREREL) dist
cd $(PRERELDIR) && tar cvvf - $(PREREL) | \
Changes in 1.42:
* Frob the "fast A20 gate" port as well as the keyboard
controller; will this help systems with problems?
+ * Include some intermediate files in the distribution, plus
+ provide a "make installer" target for distributors to relink
+ the install programs only. I would prefer the syslinux boot
+ loader proper to be "binary clean" for debuggablity -- use
+ "make clean ; make installer" to rebuild the installers only.
Changes in 1.41:
* Don't get confused by directories, volume labels, or VFAT