Add memtest support.
[syslinux-debian/hramrach.git] / com32 / lib / Makefile
blob1624ae78828b533118fd9f01dda39fa269773563
2 # ONLY INCLUDE MIT OR 2/3-BSD-LICENSED CODE IN THIS LIBRARY
5 # Include configuration rules
6 NOGPL := 1
7 VPATH = $(SRC)
8 include $(MAKEDIR)/lib.mk
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
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
25 ifdef EFI_BUILD
26 I915VESA_OBJ =
27 else
28 I915VESA_OBJ = sys/vesa/i915resolution.o
29 endif
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)
37 LIBMISC_OBJS = \
38 sys/libansi.o sys/gpxe.o
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
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
52 DYNENTRY_OBJS = \
53 atexit.o onexit.o abort.o
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)
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)
77 LIBOBJS = $(DYNLIBOBJS)
79 BINDIR = /usr/bin
80 LIBDIR = /usr/lib
81 DATADIR = /usr/share
82 AUXDIR = $(DATADIR)/syslinux
83 INCDIR = /usr/include
84 COM32DIR = $(AUXDIR)/com32
86 all: makeoutputdirs libcom32.c32 libcom32min.a libcom32core.a
88 makeoutputdirs:
89 @mkdir -p $(foreach b, \
90 $(addprefix $(OBJ)/,$(sort $(dir $(LIBOBJS) $(MINLIBOBJS) $(CORELIBOBJS)))),$(b))
92 libcom32.elf : $(LIBOBJS)
93 rm -f $@
94 $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^
96 libcom32min.a : $(MINLIBOBJS)
97 rm -f $@
98 $(AR) cq $@ $^
99 $(RANLIB) $@
101 libcom32core.a : $(CORELIBOBJS)
102 rm -f $@
103 $(AR) cq $@ $^
104 $(RANLIB) $@
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
111 spotless: clean
112 rm -f *.a *.c32
113 rm -f *~ \#* */*~ */\#*
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)
121 errlist.c: makeerrlist.pl $(SRC)/../include/errno.h
122 $(PERL) $< $(CFLAGS) -errlist > $@ || rm -f $@
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 $@ $<
128 sys/vesa/alphatbl.c: sys/vesa/alphatbl.pl
129 $(PERL) $< > $@
131 jpeg/jidctflt.o: jpeg/jidctflt.c
132 $(CC) $(MAKEDEPS) $(CFLAGS) -O3 -c -o $@ $<
134 -include .*.d */.*.d */*/.*.d