summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile18
-rw-r--r--core/Makefile35
-rw-r--r--dos/Makefile6
-rw-r--r--extlinux/Makefile8
-rw-r--r--libinstaller/Makefile35
-rwxr-xr-x[-rw-r--r--]libinstaller/bin2c.pl (renamed from bin2c.pl)0
-rw-r--r--linux/Makefile8
-rw-r--r--mbr/Makefile7
-rw-r--r--mtools/Makefile8
-rw-r--r--win32/Makefile11
10 files changed, 75 insertions, 61 deletions
diff --git a/Makefile b/Makefile
index 2be53894..1a073b27 100644
--- a/Makefile
+++ b/Makefile
@@ -37,15 +37,19 @@ BOBJECTS = $(BTARGET) \
core/pxelinux.0 core/isolinux.bin core/isolinux-debug.bin \
gpxe/gpxelinux.0 dos/syslinux.com win32/syslinux.exe \
memdisk/memdisk memdump/memdump.com
-# BESUBDIRS and IESUBDIRS are "early", i.e. before the root; BSUBDIRS
-# and ISUBDIRS are "late", after the root.
-BESUBDIRS =
-BSUBDIRS = codepage core memdisk com32 mbr memdump gpxe sample dos win32
+
+# BSUBDIRs build the on-target binary components.
+# ISUBDIRs build the installer (host) components.
+#
+# Note: libinstaller is both a BSUBDIR and an ISUBDIR. It contains
+# files that depend only on the B phase, but may have to be regenerated
+# for "make installer".
+BSUBDIRS = codepage core memdisk com32 mbr memdump gpxe sample \
+ libinstaller dos win32
ITARGET =
IOBJECTS = $(ITARGET) dos/copybs.com utils/gethostip utils/mkdiskimage \
mtools/syslinux linux/syslinux extlinux/extlinux
-IESUBDIRS =
-ISUBDIRS = mtools linux extlinux utils
+ISUBDIRS = libinstaller mtools linux extlinux utils
# Things to install in /usr/bin
INSTALL_BIN = mtools/syslinux
@@ -71,7 +75,6 @@ NETINSTALLABLE = core/pxelinux.0 gpxe/gpxelinux.0 memdisk/memdisk \
memdump/memdump.com com32/menu/*.c32 com32/modules/*.c32
all:
- set -e ; for i in $(BESUBDIRS) $(IESUBDIRS) ; do $(MAKE) -C $$i $@ ; done
$(MAKE) all-local
set -e ; for i in $(BSUBDIRS) $(ISUBDIRS) ; do $(MAKE) -C $$i $@ ; done
-ls -l $(BOBJECTS) $(IOBJECTS)
@@ -79,7 +82,6 @@ all:
all-local: $(BTARGET) $(ITARGET)
installer:
- set -e ; for i in $(IESUBDIRS); do $(MAKE) -C $$i all ; done
$(MAKE) installer-local
set -e ; for i in $(ISUBDIRS); do $(MAKE) -C $$i all ; done
-ls -l $(BOBJECTS) $(IOBJECTS)
diff --git a/core/Makefile b/core/Makefile
index ccbb0556..9700ea23 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -50,17 +50,11 @@ VERSION := $(shell cat ../version)
# filenames by other users.
CODEPAGE = cp865
-# _bin.c files required by both BTARGET and ITARGET installers
-BINFILES = bootsect_bin.c ldlinux_bin.c \
- extlinux_bss_bin.c extlinux_sys_bin.c
-
-# syslinux.exe is BTARGET so as to not require everyone to have the
-# mingw suite installed
+# The targets to build in this directory...
BTARGET = kwdhash.gen \
ldlinux.bss ldlinux.sys ldlinux.bin \
pxelinux.0 isolinux.bin isolinux-debug.bin \
extlinux.bin extlinux.bss extlinux.sys
-ITARGET =
# All primary source files for the main syslinux files
NASMSRC = $(wildcard *.asm)
@@ -80,19 +74,7 @@ ifndef DATE
DATE := $(HEXDATE)
endif
-#
-# NOTE: If you don't have the mingw compiler suite installed, you probably
-# want to remove win32 from this list; otherwise you're going to get an
-# error every time you try to build.
-#
-
-all: all-local
-
-all-local: $(BTARGET) $(BINFILES)
-
-installer: installer-local
-
-installer-local: $(ITARGET) $(BINFILES)
+all: $(BTARGET)
kwdhash.gen: keywords genhash.pl
$(PERL) genhash.pl < keywords > kwdhash.gen
@@ -133,18 +115,6 @@ extlinux.bss: extlinux.bin
extlinux.sys: extlinux.bin
dd if=$< of=$@ bs=512 skip=1
-bootsect_bin.c: ldlinux.bss ../bin2c.pl
- $(PERL) ../bin2c.pl syslinux_bootsect < $< > $@
-
-ldlinux_bin.c: ldlinux.sys ../bin2c.pl
- $(PERL) ../bin2c.pl syslinux_ldlinux < $< > $@
-
-extlinux_bss_bin.c: extlinux.bss ../bin2c.pl
- $(PERL) ../bin2c.pl extlinux_bootsect < $< > $@
-
-extlinux_sys_bin.c: extlinux.sys ../bin2c.pl
- $(PERL) ../bin2c.pl extlinux_image 512 < $< > $@
-
# NASM prior to 2.03 wouldn't auto-generate this dependency...
ldlinux.o: codepage.cp
@@ -165,7 +135,6 @@ tidy dist:
rm -f $(OBSOLETE)
clean: tidy
- rm -f $(ITARGET)
spotless: clean
rm -f $(BTARGET) *_bin.c .depend
diff --git a/dos/Makefile b/dos/Makefile
index 85df1509..29c1137b 100644
--- a/dos/Makefile
+++ b/dos/Makefile
@@ -25,7 +25,9 @@ LIBGCC := $(shell $(CC) --print-libgcc)
SRCS = syslinux.c \
../libinstaller/syslxmod.c \
- ../core/bootsect_bin.c ../core/ldlinux_bin.c ../mbr/mbr_bin.c \
+ ../libinstaller/bootsect_bin.c \
+ ../libinstaller/ldlinux_bin.c \
+ ../libinstaller/mbr_bin.c \
$(wildcard ../libfat/*.c)
OBJS = crt0.o $(patsubst %.c,%.o,$(notdir $(SRCS)))
LIBOBJS = conio.o memcpy.o memset.o skipatou.o atou.o malloc.o free.o \
@@ -33,7 +35,7 @@ LIBOBJS = conio.o memcpy.o memset.o skipatou.o atou.o malloc.o free.o \
.SUFFIXES: .c .o .i .s .S .elf .com .asm .lst
-VPATH = .:../libfat:../libinstaller:../core:../mbr
+VPATH = .:../libfat:../libinstaller
TARGETS = syslinux.com copybs.com
diff --git a/extlinux/Makefile b/extlinux/Makefile
index dec87396..ec212d68 100644
--- a/extlinux/Makefile
+++ b/extlinux/Makefile
@@ -12,13 +12,15 @@ INCLUDES = -I. -I.. -I../libinstaller
CFLAGS = -W -Wall -Wno-sign-compare -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES)
LDFLAGS = $(LDHASH) # -s
-SRCS = main.c ../libinstaller/setadv.c \
- ../core/extlinux_bss_bin.c ../core/extlinux_sys_bin.c
+SRCS = main.c \
+ ../libinstaller/setadv.c \
+ ../libinstaller/extlinux_bss_bin.c \
+ ../libinstaller/extlinux_sys_bin.c
OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS)))
.SUFFIXES: .c .o .i .s .S
-VPATH = .:../libinstaller:../core
+VPATH = .:../libinstaller
all: installer
diff --git a/libinstaller/Makefile b/libinstaller/Makefile
new file mode 100644
index 00000000..ef3711dd
--- /dev/null
+++ b/libinstaller/Makefile
@@ -0,0 +1,35 @@
+# _bin.c files required by both BTARGET and ITARGET installers
+BINFILES = bootsect_bin.c ldlinux_bin.c \
+ extlinux_bss_bin.c extlinux_sys_bin.c \
+ mbr_bin.c gptmbr_bin.c
+
+PERL = perl
+
+all: $(BINFILES)
+
+bootsect_bin.c: ../core/ldlinux.bss bin2c.pl
+ $(PERL) bin2c.pl syslinux_bootsect < $< > $@
+
+ldlinux_bin.c: ../core/ldlinux.sys bin2c.pl
+ $(PERL) bin2c.pl syslinux_ldlinux < $< > $@
+
+extlinux_bss_bin.c: ../core/extlinux.bss bin2c.pl
+ $(PERL) bin2c.pl extlinux_bootsect < $< > $@
+
+extlinux_sys_bin.c: ../core/extlinux.sys bin2c.pl
+ $(PERL) bin2c.pl extlinux_image 512 < $< > $@
+
+mbr_bin.c: ../mbr/mbr.bin bin2c.pl
+ $(PERL) bin2c.pl syslinux_mbr < $< > $@
+
+gptmbr_bin.c: ../mbr/gptmbr.bin bin2c.pl
+ $(PERL) bin2c.pl syslinux_gptmbr < $< > $@
+
+tidy:
+ rm -f $(BINFILES)
+
+clean: tidy
+
+dist: tidy
+
+spotless: clean
diff --git a/bin2c.pl b/libinstaller/bin2c.pl
index 5a60ca9e..5a60ca9e 100644..100755
--- a/bin2c.pl
+++ b/libinstaller/bin2c.pl
diff --git a/linux/Makefile b/linux/Makefile
index 678dc9be..e354171b 100644
--- a/linux/Makefile
+++ b/linux/Makefile
@@ -12,13 +12,15 @@ INCLUDES = -I. -I.. -I../libinstaller
CFLAGS = -W -Wall -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES)
LDFLAGS = $(LDHASH) -s
-SRCS = syslinux.c ../libinstaller/syslxmod.c \
- ../core/bootsect_bin.c ../core/ldlinux_bin.c
+SRCS = syslinux.c \
+ ../libinstaller/syslxmod.c \
+ ../libinstaller/bootsect_bin.c \
+ ../libinstaller/ldlinux_bin.c
OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS)))
.SUFFIXES: .c .o .i .s .S
-VPATH = .:../libinstaller:../core
+VPATH = .:../libinstaller
all: installer
diff --git a/mbr/Makefile b/mbr/Makefile
index 07e0d94a..d479265c 100644
--- a/mbr/Makefile
+++ b/mbr/Makefile
@@ -30,15 +30,12 @@ PERL = perl
.SUFFIXES: .S .s .o .elf
-all: mbr.bin mbr_bin.c gptmbr.bin gptmbr_bin.c
+all: mbr.bin gptmbr.bin
.PRECIOUS: %.o
%.o: %.S
$(CC) $(SFLAGS) -Wa,-a=$*.lst -c -o $@ $<
-%_bin.c: %.bin ../bin2c.pl
- $(PERL) ../bin2c.pl syslinux_$* < $< > $@
-
mbr.elf: mbr.o mbr.ld
$(LD) $(LDFLAGS) -T mbr.ld -e _start -o $@ $<
@@ -56,7 +53,7 @@ gptmbr.bin: gptmbr.elf checksize.pl
$(PERL) checksize.pl gptmbr.bin 424
tidy dist:
- rm -f *.o *.elf *.lst *_bin.c
+ rm -f *.o *.elf *.lst
clean: tidy
diff --git a/mtools/Makefile b/mtools/Makefile
index d3cdf81e..9e9e5114 100644
--- a/mtools/Makefile
+++ b/mtools/Makefile
@@ -12,14 +12,16 @@ INCLUDES = -I. -I.. -I../libfat -I../libinstaller
CFLAGS = -W -Wall -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES)
LDFLAGS = $(LDHASH) -s
-SRCS = syslinux.c ../libinstaller/syslxmod.c \
- ../core/bootsect_bin.c ../core/ldlinux_bin.c \
+SRCS = syslinux.c \
+ ../libinstaller/syslxmod.c \
+ ../libinstaller/bootsect_bin.c \
+ ../libinstaller/ldlinux_bin.c \
$(wildcard ../libfat/*.c)
OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS)))
.SUFFIXES: .c .o .i .s .S
-VPATH = .:../libfat:../libinstaller:../core
+VPATH = .:../libfat:../libinstaller
all: installer
diff --git a/win32/Makefile b/win32/Makefile
index 99766151..fe94d1e4 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -47,12 +47,15 @@ WINCC_IS_GOOD := $(shell $(WINCC) $(WINCFLAGS) $(WINLDFLAGS) -o hello.exe hello.
.SUFFIXES: .c .o .i .s .S
-SRCS = syslinux.c ../libinstaller/syslxmod.c \
- ../core/bootsect_bin.c ../core/ldlinux_bin.c \
- ../mbr/mbr_bin.c $(wildcard ../libfat/*.c)
+SRCS = syslinux.c \
+ ../libinstaller/syslxmod.c \
+ ../libinstaller/bootsect_bin.c \
+ ../libinstaller/ldlinux_bin.c \
+ ../libinstaller/mbr_bin.c \
+ $(wildcard ../libfat/*.c)
OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS)))
-VPATH = .:../libfat:../libinstaller:../core:../mbr
+VPATH = .:../libfat:../libinstaller
TARGETS = syslinux.exe