[e16e8f2] | 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 |
---|