1# makefile for Haru Free PDFLibrary II (Libharu)
2# Copyright (C) 1999-2006 Takeshi Kanno
3# For conditions of distribution and use, see copyright notice in hpdf.h
4#
5# To compile, type:
6#   ./configure; make
7# If you wish to build zlib as a shared library, use: ./configure -s
8# To install /usr/local/lib/libhpdf.* and /usr/local/include/hpdf.h, type:
9#    make install
10# To install in $HOME instead of /usr/local, use:
11#    make install prefix=$HOME
12
13CC=gcc
14PREFIX=/usr/local
15
16LIBNAME=libhpdf.a
17SONAME=libhpdf.dll
18SOVER1=.1
19SOVER2=.0.0
20LIBTARGET=libhpdf.dll
21CFLAGS=-Iinclude -O2 -Wall -Iwin32/include -mno-cygwin -DHPDF_DLL_MAKE -DHPDF_DLL_MAKE_CDECL
22CFLAGS_DEMO=-Iinclude -O2 -Wall -mno-cygwin -DHPDF_DLL
23CFLAGS_EXE=-o
24LDFLAGS=-Lwin32/mingw -L. -lpng -lz
25LDFLAGS_DEMO1=
26LDFLAGS_DEMO2=-L. -lhpdf
27DEFNAME=win32/mingw/libhpdf.def
28RESNAME=win32/mingw/libhpdf_mingw.res
29
30OBJS = \
31	src/hpdf_utils.o \
32	src/hpdf_error.o \
33	src/hpdf_mmgr.o \
34	src/hpdf_list.o \
35	src/hpdf_streams.o \
36	src/hpdf_objects.o \
37	src/hpdf_null.o \
38	src/hpdf_boolean.o \
39	src/hpdf_number.o \
40	src/hpdf_real.o \
41	src/hpdf_name.o \
42	src/hpdf_array.o \
43	src/hpdf_dict.o \
44	src/hpdf_xref.o \
45	src/hpdf_encoder.o \
46	src/hpdf_string.o \
47	src/hpdf_binary.o \
48	src/hpdf_encrypt.o \
49	src/hpdf_encryptdict.o \
50	src/hpdf_fontdef.o \
51	src/hpdf_fontdef_tt.o \
52	src/hpdf_fontdef_type1.o \
53	src/hpdf_fontdef_base14.o \
54	src/hpdf_fontdef_cid.o \
55	src/hpdf_font.o \
56	src/hpdf_font_type1.o \
57	src/hpdf_font_tt.o \
58	src/hpdf_font_cid.o \
59	src/hpdf_doc.o \
60	src/hpdf_info.o \
61	src/hpdf_catalog.o \
62	src/hpdf_page_label.o\
63	src/hpdf_gstate.o \
64	src/hpdf_pages.o \
65	src/hpdf_page_operator.o \
66	src/hpdf_destination.o \
67	src/hpdf_annotation.o \
68	src/hpdf_outline.o \
69	src/hpdf_image.o \
70	src/hpdf_encoder_jp.o \
71	src/hpdf_encoder_kr.o \
72	src/hpdf_encoder_cns.o \
73	src/hpdf_encoder_cnt.o \
74	src/hpdf_fontdef_jp.o \
75	src/hpdf_fontdef_kr.o \
76	src/hpdf_fontdef_cns.o \
77	src/hpdf_fontdef_cnt.o \
78	src/hpdf_image_png.o \
79	src/hpdf_image_ccitt.o \
80	src/hpdf_doc_png.o \
81	src/hpdf_ext_gstate.o \
82	src/hpdf_namedict.o \
83	src/hpdf_3dmeasure.o \
84	src/hpdf_exdata.o \
85	src/hpdf_u3d.o \
86
87PROGRAMS = \
88	demo/encoding_list.exe \
89	demo/font_demo.exe \
90	demo/text_demo.exe \
91	demo/text_demo2.exe \
92	demo/image_demo.exe \
93	demo/jpeg_demo.exe \
94	demo/jpfont_demo.exe \
95	demo/line_demo.exe \
96	demo/link_annotation.exe \
97	demo/outline_demo.exe \
98	demo/png_demo.exe \
99	demo/text_annotation.exe \
100	demo/ttfont_demo.exe \
101	demo/character_map.exe \
102	demo/grid_sheet.exe \
103	demo/arc_demo.exe \
104	demo/raw_image_demo.exe \
105	demo/encryption.exe \
106	demo/permission.exe \
107	demo/slide_show_demo.exe \
108	demo/ext_gstate_demo.exe \
109
110.SUFFIXES:  .c .o
111
112all: $(LIBTARGET)
113
114$(LIBNAME): $(OBJS)
115	ar rc $(LIBNAME) $(OBJS)
116	ranlib $(LIBNAME)
117
118$(SONAME): $(OBJS)
119	$(CC) -Wall -shared -o $(SONAME) $(OBJS) $(DEFNAME) $(RESNAME) -Wl,--kill-at,--enable-stdcall-fixup $(LDFLAGS) -mno-cygwin
120	dlltool -k -d $(DEFNAME) -l $(LIBNAME)
121	strip $(SONAME)
122	cp -p $(SONAME) demo
123
124
125demo: $(LIBTARGET) $(PROGRAMS)
126
127clean:
128	rm -f src/*.o src/*.obj ./*.a ./*.so* ./*.lib demo/*.exe
129
130install: all installfiles
131
132installfiles:
133	if [ ! -d $(PREFIX) ]; then mkdir -p $(PREFIX); fi
134	if [ ! -d $(PREFIX)/include ]; then mkdir -p $(PREFIX)/include; fi
135	if [ ! -d $(PREFIX)/lib ]; then mkdir -p $(PREFIX)/lib; fi
136	cp include/hpdf.h include/hpdf_consts.h include/hpdf_types.h $(PREFIX)/include/; chmod 644 $(PREFIX)/include/hpdf*.h
137	cp -p $(SONAME)$(SOVER1)$(SOVER2) $(PREFIX)/lib/
138	cp -p $(LIBNAME) $(PREFIX)/lib/
139
140
141.c.o:
142	$(CC) -o $@ $(CFLAGS) -c $*.c
143
144demo/encoding_list.exe : demo/encoding_list.c $(LIBTARGET)
145	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/encoding_list.c  $(LDFLAGS_DEMO2)
146	cd demo/ ; ./encoding_list.exe
147
148demo/font_demo.exe : demo/font_demo.c $(LIBTARGET)
149	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/font_demo.c $(LDFLAGS_DEMO2)
150	cd demo/ ; ./font_demo.exe
151
152demo/text_demo.exe : demo/text_demo.c demo/grid_sheet.c $(LIBTARGET)
153	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/text_demo.c demo/grid_sheet.c $(LDFLAGS_DEMO2)
154	cd demo/ ; ./text_demo.exe
155
156demo/text_demo2.exe : demo/text_demo2.c demo/grid_sheet.c $(LIBTARGET)
157	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/text_demo2.c demo/grid_sheet.c $(LDFLAGS_DEMO2)
158	cd demo/ ; ./text_demo2.exe
159
160demo/image_demo.exe : demo/image_demo.c $(LIBTARGET)
161	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/image_demo.c $(LDFLAGS_DEMO2)
162	cd demo/ ; ./image_demo.exe
163
164demo/jpeg_demo.exe : demo/jpeg_demo.c $(LIBTARGET)
165	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/jpeg_demo.c $(LDFLAGS_DEMO2)
166	cd demo/ ; ./jpeg_demo.exe
167
168demo/jpfont_demo.exe : demo/jpfont_demo.c $(LIBTARGET)
169	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/jpfont_demo.c $(LDFLAGS_DEMO2)
170	cd demo/ ; ./jpfont_demo.exe
171
172demo/line_demo.exe : demo/line_demo.c $(LIBTARGET)
173	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/line_demo.c $(LDFLAGS_DEMO2)
174	cd demo/ ; ./line_demo.exe
175
176demo/link_annotation.exe : demo/link_annotation.c $(LIBTARGET)
177	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/link_annotation.c $(LDFLAGS_DEMO2)
178	cd demo/ ; ./link_annotation.exe
179
180demo/outline_demo.exe : demo/outline_demo.c $(LIBTARGET)
181	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/outline_demo.c $(LDFLAGS_DEMO2)
182	cd demo/ ; ./outline_demo.exe
183
184demo/png_demo.exe : demo/png_demo.c $(LIBTARGET)
185	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/png_demo.c $(LDFLAGS_DEMO2)
186	cd demo/ ; ./png_demo.exe
187
188demo/text_annotation.exe : demo/text_annotation.c $(LIBTARGET)
189	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/text_annotation.c $(LDFLAGS_DEMO2)
190	cd demo/ ; ./text_annotation.exe
191
192demo/encryption.exe : demo/encryption.c $(LIBTARGET)
193	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/encryption.c $(LDFLAGS_DEMO2)
194	cd demo/ ; ./encryption.exe
195
196demo/permission.exe : demo/permission.c $(LIBTARGET)
197	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/permission.c $(LDFLAGS_DEMO2)
198	cd demo/ ; ./permission.exe
199
200demo/ttfont_demo.exe : demo/ttfont_demo.c $(LIBTARGET)
201	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/ttfont_demo.c $(LDFLAGS_DEMO2)
202	cd demo/ ; ./ttfont_demo.exe ttfont/PenguinAttack.ttf -E
203
204demo/character_map.exe : demo/character_map.c $(LIBTARGET)
205	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/character_map.c $(LDFLAGS_DEMO2)
206
207demo/raw_image_demo.exe : demo/raw_image_demo.c $(LIBTARGET)
208	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/grid_sheet.c demo/raw_image_demo.c $(LDFLAGS_DEMO2)
209	cd demo/ ; ./raw_image_demo.exe
210
211demo/arc_demo.exe : demo/arc_demo.c demo/grid_sheet.c $(LIBTARGET)
212	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/grid_sheet.c demo/arc_demo.c $(LDFLAGS_DEMO2)
213	cd demo/ ; ./arc_demo.exe
214
215demo/grid_sheet.exe : demo/grid_sheet.c $(LIBTARGET)
216	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) -DSTAND_ALONE $(LDFLAGS_DEMO1) demo/grid_sheet.c $(LDFLAGS_DEMO2)
217	cd demo/ ; ./grid_sheet.exe
218
219demo/slide_show_demo.exe : demo/slide_show_demo.c $(LIBTARGET)
220	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/slide_show_demo.c $(LDFLAGS_DEMO2)
221	cd demo/ ; ./slide_show_demo.exe
222
223demo/ext_gstate_demo.exe : demo/ext_gstate_demo.c $(LIBTARGET)
224	$(CC) $(CFLAGS_EXE)$@ $(CFLAGS_DEMO) $(LDFLAGS_DEMO1) demo/ext_gstate_demo.c $(LDFLAGS_DEMO2)
225	cd demo/ ; ./ext_gstate_demo.exe
226
227
228