Simple menu system: move to dedicated subdirectory
authorH. Peter Anvin <hpa@zytor.com>
Mon, 11 Feb 2008 06:26:06 +0000 (22:26 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 11 Feb 2008 06:26:06 +0000 (22:26 -0800)
Move the simple menu system into its own subdirectory, to make it more
obvious which source files are part of it.

com32/Makefile
com32/menu/Makefile [new file with mode: 0644]
com32/menu/menu.c [moved from com32/modules/menu.c with 100% similarity]
com32/menu/menu.h [moved from com32/modules/menu.h with 100% similarity]
com32/menu/menumain.c [moved from com32/modules/menumain.c with 100% similarity]
com32/menu/printmsg.c [moved from com32/modules/printmsg.c with 100% similarity]
com32/menu/readconfig.c [moved from com32/modules/readconfig.c with 100% similarity]
com32/menu/vesamenu.c [moved from com32/modules/vesamenu.c with 100% similarity]
com32/modules/Makefile

index 090ea93..32d7356 100644 (file)
@@ -1,4 +1,4 @@
-SUBDIRS = lib libutil modules samples
+SUBDIRS = lib libutil modules menu samples
 
 all tidy clean spotless install:
        set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done
diff --git a/com32/menu/Makefile b/com32/menu/Makefile
new file mode 100644 (file)
index 0000000..118e196
--- /dev/null
@@ -0,0 +1,101 @@
+## -----------------------------------------------------------------------
+##
+##   Copyright 2001-2008 H. Peter Anvin - All Rights Reserved
+##
+##   This program is free software; you can redistribute it and/or modify
+##   it under the terms of the GNU General Public License as published by
+##   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
+##   Boston MA 02111-1307, USA; either version 2 of the License, or
+##   (at your option) any later version; incorporated herein by reference.
+##
+## -----------------------------------------------------------------------
+
+##
+## Simple menu system
+##
+
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok   = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+                  then echo $(1); else echo $(2); fi; rm -f $$tmpf)
+
+M32     := $(call gcc_ok,-m32,) $(call gcc_ok,-fno-stack-protector,)
+
+CC         = gcc
+LD         = ld -m elf_i386
+AR        = ar
+NASM      = nasm
+NASMOPT           = -O9999
+RANLIB    = ranlib
+CFLAGS     = $(M32) -mregparm=3 -DREGPARM=3 -W -Wall -march=i386 -Os -fomit-frame-pointer -I../libutil/include -I../include  -D__COM32__
+LNXCFLAGS  = -W -Wall -O -g -I../libutil/include
+LNXSFLAGS  = -g
+LNXLDFLAGS = -g
+SFLAGS     = -D__COM32__ -march=i386
+LDFLAGS    = -T ../lib/com32.ld
+OBJCOPY    = objcopy
+PPMTOLSS16 =   ../ppmtolss16
+LIBGCC    := $(shell $(CC) --print-libgcc)
+LIBS      = ../libutil/libutil_com.a ../lib/libcom32.a $(LIBGCC)
+LNXLIBS           = ../libutil/libutil_lnx.a
+
+.SUFFIXES: .lss .c .o .elf .c32 .lnx
+
+BINDIR   = /usr/bin
+LIBDIR   = /usr/lib
+AUXDIR   = $(LIBDIR)/syslinux
+INCDIR   = /usr/include
+COM32DIR = $(AUXDIR)/com32
+
+MODULES          = menu.c32 vesamenu.c32
+TESTFILES =
+
+COMMONOBJS = menumain.o readconfig.o printmsg.o
+
+all: $(MODULES) $(TESTFILES)
+
+.PRECIOUS: %.o
+%.o: %.S
+       $(CC) $(SFLAGS) -c -o $@ $<
+
+.PRECIOUS: %.o
+%.o: %.c
+       $(CC) $(CFLAGS) -c -o $@ $<
+
+.PRECIOUS: %.elf
+%.elf: %.o $(LIBS)
+       $(LD) $(LDFLAGS) -o $@ $^
+
+.PRECIOUS: %.lo
+%.lo: %.S
+       $(CC) $(LNXSFLAGS) -c -o $@ $<
+
+.PRECIOUS: %.lo
+%.lo: %.c
+       $(CC) $(LNXCFLAGS) -c -o $@ $<
+
+.PRECIOUS: %.lnx
+%.lnx: %.lo $(LNXLIBS)
+       $(CC) $(LNXLDFLAGS) -o $@ $^
+
+%.c32: %.elf
+       $(OBJCOPY) -O binary $< $@
+
+menu.elf : menu.o $(COMMONOBJS) $(LIBS)
+       $(LD) $(LDFLAGS) -o $@ $^
+
+vesamenu.elf : vesamenu.o $(COMMONOBJS) $(LIBS)
+       $(LD) $(LDFLAGS) -o $@ $^
+
+tidy:
+       rm -f *.o *.lo *.a *.lst *.elf
+
+clean: tidy
+       rm -f *.lss *.c32 *.lnx *.com
+
+spotless: clean
+       rm -f *~ \#*
+
+install: all
+       mkdir -m 755 -p $(INSTALLROOT)$(AUXDIR)
+       install -m 644 $(MODULES) $(INSTALLROOT)$(AUXDIR)
similarity index 100%
rename from com32/modules/menu.c
rename to com32/menu/menu.c
similarity index 100%
rename from com32/modules/menu.h
rename to com32/menu/menu.h
index 0347c17..6291a6a 100644 (file)
@@ -11,7 +11,7 @@
 ## -----------------------------------------------------------------------
 
 ##
-## samples for syslinux users
+## COM32 standard modules
 ##
 
 TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
@@ -47,9 +47,8 @@ AUXDIR   = $(LIBDIR)/syslinux
 INCDIR   = /usr/include
 COM32DIR = $(AUXDIR)/com32
 
-MODULES          = chain.c32 menu.c32 vesamenu.c32 ethersel.c32 mboot.c32 \
-           dmitest.c32 cpuidtest.c32 pcitest.c32 elf.c32 linux.c32 \
-           reboot.c32 pmload.c32 meminfo.c32
+MODULES          = chain.c32 ethersel.c32 mboot.c32 dmitest.c32 cpuidtest.c32 \
+           pcitest.c32 elf.c32 linux.c32 reboot.c32 pmload.c32 meminfo.c32
 TESTFILES =
 
 all: $(MODULES) $(TESTFILES)
@@ -90,18 +89,9 @@ cpuidtest.elf : cpuidtest.o cpuid.o $(LIBS)
 dmitest.elf : dmitest.o dmi_utils.o dmi.o $(LIBS)
        $(LD) $(LDFLAGS) -o $@ $^
 
-menu.elf : menu.o menumain.o readconfig.o printmsg.o $(LIBS)
-       $(LD) $(LDFLAGS) -o $@ $^
-
-vesamenu.elf : vesamenu.o menumain.o readconfig.o printmsg.o $(LIBS)
-       $(LD) $(LDFLAGS) -o $@ $^
-
 ethersel.elf : ethersel.o $(LIBS)
        $(LD) $(LDFLAGS) -o $@ $^
 
-menu.lnx : menu.lo readconfig.lo $(LNXLIBS)
-       $(CC) $(LNXLDFLAGS) -o $@ $^
-
 tidy:
        rm -f *.o *.lo *.a *.lst *.elf