# # ONLY INCLUDE MIT OR 2/3-BSD-LICENSED CODE IN THIS LIBRARY # # Include configuration rules NOGPL := 1 VPATH = $(SRC) include $(MAKEDIR)/lib.mk ## OPTIONAL OBJECTS, AVAILABLE AS DYNAMIC LINKED MODULES # PNG library object files LIBPNG_OBJS = \ libpng/png.o libpng/pngset.o libpng/pngget.o libpng/pngrutil.o \ libpng/pngtrans.o libpng/pngwutil.o libpng/pngread.o \ libpng/pngrio.o libpng/pngwio.o libpng/pngwrite.o \ libpng/pngrtran.o libpng/pngwtran.o libpng/pngmem.o \ libpng/pngerror.o libpng/pngpread.o # JPG library object files LIBJPG_OBJS = \ jpeg/tinyjpeg.o jpeg/jidctflt.o jpeg/decode1.o jpeg/decode3.o \ jpeg/rgb24.o jpeg/bgr24.o jpeg/yuv420p.o jpeg/grey.o \ jpeg/rgba32.o jpeg/bgra32.o ifeq ($(FWCLASS),EFI) I915VESA_OBJ = else I915VESA_OBJ = sys/vesa/i915resolution.o endif LIBVESA_OBJS = \ sys/vesacon_write.o sys/vesaserial_write.o \ sys/vesa/initvesa.o sys/vesa/drawtxt.o sys/vesa/background.o \ sys/vesa/alphatbl.o sys/vesa/screencpy.o sys/vesa/fmtpixel.o \ $(I915VESA_OBJ) LIBMISC_OBJS = \ sys/libansi.o sys/gpxe.o LIBPCI_OBJS = \ pci/cfgtype.o pci/scan.o pci/bios.o \ pci/readb.o pci/readw.o pci/readl.o \ pci/writeb.o pci/writew.o pci/writel.o LIBSYSLINUX_OBJS = \ syslinux/reboot.o syslinux/keyboard.o \ syslinux/version.o \ syslinux/pxe_get_cached.o syslinux/pxe_get_nic.o \ syslinux/pxe_dns.o \ syslinux/video/fontquery.o syslinux/video/reportmode.o DYNENTRY_OBJS = \ atexit.o onexit.o abort.o MINLIBOBJS = \ syslinux/ipappend.o \ syslinux/dsinfo.o \ $(LIBOTHER_OBJS) \ $(LIBGCC_OBJS) \ $(LIBCONSOLE_OBJS) \ $(LIBLOAD_OBJS) \ $(LIBZLIB_OBJS) # $(LIBVESA_OBJS) DYNLIBOBJS = \ $(LIBZLIB_OBJS) \ $(LIBPNG_OBJS) \ $(LIBJPG_OBJS) \ $(LIBPCI_OBJS) \ $(LIBVESA_OBJS) \ $(LIBSYSLINUX_OBJS) \ $(LIBLOAD_OBJS) \ $(LIBMISC_OBJS) \ $(DYNENTRY_OBJS) LIBOBJS = $(DYNLIBOBJS) BINDIR = /usr/bin LIBDIR = /usr/lib DATADIR = /usr/share AUXDIR = $(DATADIR)/syslinux INCDIR = /usr/include COM32DIR = $(AUXDIR)/com32 all: makeoutputdirs libcom32.c32 libcom32min.a libcom32core.a makeoutputdirs: @mkdir -p $(foreach b, \ $(addprefix $(OBJ)/,$(sort $(dir $(LIBOBJS) $(MINLIBOBJS) $(CORELIBOBJS)))),$(b)) libcom32.elf : $(LIBOBJS) rm -f $@ $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ libcom32min.a : $(MINLIBOBJS) rm -f $@ $(AR) cq $@ $^ $(RANLIB) $@ libcom32core.a : $(CORELIBOBJS) rm -f $@ $(AR) cq $@ $^ $(RANLIB) $@ tidy dist clean: rm -f sys/vesa/alphatbl.c errlist.c find . \( -name \*.o -o -name \*.a -o -name .\*.d -o -name \*.tmp \) -print0 | \ xargs -0r rm -f spotless: clean rm -f *.a *.c32 rm -f *~ \#* */*~ */\#* install: all mkdir -m 755 -p $(INSTALLROOT)$(COM32DIR) install -m 644 $(SRC)/com32.ld $(INSTALLROOT)$(COM32DIR) -rm -rf $(INSTALLROOT)$(COM32DIR)/include cp -r $(SRC)/../include $(INSTALLROOT)$(COM32DIR) errlist.c: makeerrlist.pl $(SRC)/../include/errno.h $(PERL) $< $(CFLAGS) -errlist > $@ || rm -f $@ # These files are performance critical, and doesn't compile well with -Os sys/vesa/drawtxt.o: sys/vesa/drawtxt.c $(CC) $(MAKEDEPS) $(CFLAGS) -O3 -c -o $@ $< sys/vesa/alphatbl.c: sys/vesa/alphatbl.pl $(PERL) $< > $@ jpeg/jidctflt.o: jpeg/jidctflt.c $(CC) $(MAKEDEPS) $(CFLAGS) -O3 -c -o $@ $< -include .*.d */.*.d */*/.*.d