summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhpa <hpa>1998-12-04 07:03:34 +0000
committerhpa <hpa>1998-12-04 07:03:34 +0000
commit13f69230feecad016bd41bf54cea84c398771094 (patch)
tree22a7cf2eebd07939ea8e0db3e5ce7ecaf7a4f5fe
parent42c34bbc69fbeab16e89b4a2d54d3af34c5c3612 (diff)
downloadsyslinux-1.42-0x366788f5.tar.gz
Split the build between boot loader proper and installers; this willsyslinux-1.42-0x366788f5syslinux-1.42-0x36678377
permit distributors to rebuild the installers without changing the binary of the boot loader proper.
-rw-r--r--Makefile30
-rw-r--r--NEWS5
2 files changed, 26 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index ce11427e..54b8c090 100644
--- a/Makefile
+++ b/Makefile
@@ -27,22 +27,31 @@ VERSION = $(shell cat version)
.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
@@ -81,10 +90,13 @@ install: all
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 *~ \#*
@@ -97,7 +109,7 @@ dist: tidy
.PHONY: official release
official:
- $(MAKE) clean
+ $(MAKE) spotless
$(MAKE) all DATE=`date +'%Y-%m-%d'`
$(MAKE) dist
@@ -122,7 +134,7 @@ prerel:
-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) | \
diff --git a/NEWS b/NEWS
index 51dc084a..9b93284b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,11 @@
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