1 # 2 # ONLY INCLUDE MIT OR 2/3-BSD-LICENSED CODE IN THIS LIBRARY 3 # 4 5 # Include configuration rules 6 NOGPL := 1 7 VPATH = $(SRC) 8 include $(MAKEDIR)/lib.mk 9 10 ## OPTIONAL OBJECTS, AVAILABLE AS DYNAMIC LINKED MODULES 11 # PNG library object files 12 LIBPNG_OBJS = \ 13 libpng/png.o libpng/pngset.o libpng/pngget.o libpng/pngrutil.o \ 14 libpng/pngtrans.o libpng/pngwutil.o libpng/pngread.o \ 15 libpng/pngrio.o libpng/pngwio.o libpng/pngwrite.o \ 16 libpng/pngrtran.o libpng/pngwtran.o libpng/pngmem.o \ 17 libpng/pngerror.o libpng/pngpread.o 18 19 # JPG library object files 20 LIBJPG_OBJS = \ 21 jpeg/tinyjpeg.o jpeg/jidctflt.o jpeg/decode1.o jpeg/decode3.o \ 22 jpeg/rgb24.o jpeg/bgr24.o jpeg/yuv420p.o jpeg/grey.o \ 23 jpeg/rgba32.o jpeg/bgra32.o 24 25 ifdef EFI_BUILD 26 I915VESA_OBJ = 27 else 28 I915VESA_OBJ = sys/vesa/i915resolution.o 29 endif 30 31 LIBVESA_OBJS = \ 32 sys/vesacon_write.o sys/vesaserial_write.o \ 33 sys/vesa/initvesa.o sys/vesa/drawtxt.o sys/vesa/background.o \ 34 sys/vesa/alphatbl.o sys/vesa/screencpy.o sys/vesa/fmtpixel.o \ 35 $(I915VESA_OBJ) 36 37 LIBMISC_OBJS = \ 38 sys/libansi.o sys/gpxe.o 39 40 LIBPCI_OBJS = \ 41 pci/cfgtype.o pci/scan.o pci/bios.o \ 42 pci/readb.o pci/readw.o pci/readl.o \ 43 pci/writeb.o pci/writew.o pci/writel.o 44 45 LIBSYSLINUX_OBJS = \ 46 syslinux/reboot.o syslinux/keyboard.o \ 47 syslinux/version.o \ 48 syslinux/pxe_get_cached.o syslinux/pxe_get_nic.o \ 49 syslinux/pxe_dns.o \ 50 syslinux/video/fontquery.o syslinux/video/reportmode.o 51 52 DYNENTRY_OBJS = \ 53 atexit.o onexit.o abort.o 54 55 MINLIBOBJS = \ 56 syslinux/ipappend.o \ 57 syslinux/dsinfo.o \ 58 $(LIBOTHER_OBJS) \ 59 $(LIBGCC_OBJS) \ 60 $(LIBCONSOLE_OBJS) \ 61 $(LIBLOAD_OBJS) \ 62 $(LIBZLIB_OBJS) 63 # $(LIBVESA_OBJS) 64 65 DYNLIBOBJS = \ 66 $(LIBZLIB_OBJS) \ 67 $(LIBPNG_OBJS) \ 68 $(LIBJPG_OBJS) \ 69 $(LIBPCI_OBJS) \ 70 $(LIBVESA_OBJS) \ 71 $(LIBSYSLINUX_OBJS) \ 72 $(LIBLOAD_OBJS) \ 73 $(LIBMISC_OBJS) \ 74 $(DYNENTRY_OBJS) 75 76 77 LIBOBJS = $(DYNLIBOBJS) 78 79 BINDIR = /usr/bin 80 LIBDIR = /usr/lib 81 DATADIR = /usr/share 82 AUXDIR = $(DATADIR)/syslinux 83 INCDIR = /usr/include 84 COM32DIR = $(AUXDIR)/com32 85 86 all: makeoutputdirs libcom32.c32 libcom32min.a libcom32core.a 87 88 makeoutputdirs: 89 @mkdir -p $(foreach b, \ 90 $(addprefix $(OBJ)/,$(sort $(dir $(LIBOBJS) $(MINLIBOBJS) $(CORELIBOBJS)))),$(b)) 91 92 libcom32.elf : $(LIBOBJS) 93 rm -f $@ 94 $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ 95 96 libcom32min.a : $(MINLIBOBJS) 97 rm -f $@ 98 $(AR) cq $@ $^ 99 $(RANLIB) $@ 100 101 libcom32core.a : $(CORELIBOBJS) 102 rm -f $@ 103 $(AR) cq $@ $^ 104 $(RANLIB) $@ 105 106 tidy dist clean: 107 rm -f sys/vesa/alphatbl.c errlist.c 108 find . \( -name \*.o -o -name \*.a -o -name .\*.d -o -name \*.tmp \) -print0 | \ 109 xargs -0r rm -f 110 111 spotless: clean 112 rm -f *.a *.c32 113 rm -f *~ \#* */*~ */\#* 114 115 install: all 116 mkdir -m 755 -p $(INSTALLROOT)$(COM32DIR) 117 install -m 644 $(SRC)/com32.ld $(INSTALLROOT)$(COM32DIR) 118 -rm -rf $(INSTALLROOT)$(COM32DIR)/include 119 cp -r $(SRC)/../include $(INSTALLROOT)$(COM32DIR) 120 121 errlist.c: makeerrlist.pl $(SRC)/../include/errno.h 122 $(PERL) $< $(CFLAGS) -errlist > $@ || rm -f $@ 123 124 # These files are performance critical, and doesn't compile well with -Os 125 sys/vesa/drawtxt.o: sys/vesa/drawtxt.c 126 $(CC) $(MAKEDEPS) $(CFLAGS) -O3 -c -o $@ $< 127 128 sys/vesa/alphatbl.c: sys/vesa/alphatbl.pl 129 $(PERL) $< > $@ 130 131 jpeg/jidctflt.o: jpeg/jidctflt.c 132 $(CC) $(MAKEDEPS) $(CFLAGS) -O3 -c -o $@ $< 133 134 -include .*.d */.*.d */*/.*.d 135