1#
2# Test/example program Makefile for the Fast Light Tool Kit (FLTK).
3#
4# Copyright 1998-2021 by Bill Spitzak and others.
5#
6# This library is free software. Distribution and use rights are outlined in
7# the file "COPYING" which should have been included with this file.  If this
8# file is missing or damaged, see the license at:
9#
10#      https://www.fltk.org/COPYING.php
11#
12# Please see the following page on how to report bugs and issues:
13#
14#      https://www.fltk.org/bugs.php
15#
16
17include ../makeinclude
18
19CPPFILES =\
20	adjuster.cxx \
21	animated.cxx \
22	arc.cxx \
23	ask.cxx \
24	bitmap.cxx \
25	blocks.cxx \
26	boxtype.cxx \
27	browser.cxx \
28	button.cxx \
29	buttons.cxx \
30	cairo_test.cxx \
31	checkers.cxx \
32	clock.cxx \
33	colbrowser.cxx \
34	color_chooser.cxx \
35	cube.cxx \
36	CubeMain.cxx \
37	CubeView.cxx \
38	cursor.cxx \
39	curve.cxx \
40	demo.cxx \
41	device.cxx \
42	doublebuffer.cxx \
43	editor.cxx \
44	fast_slow.cxx \
45	file_chooser.cxx \
46	fltk-versions.cxx \
47	fonts.cxx \
48	forms.cxx \
49	fractals.cxx \
50	fracviewer.cxx \
51	fullscreen.cxx \
52	gl_overlay.cxx \
53	glpuzzle.cxx \
54	hello.cxx \
55	help.cxx \
56	icon.cxx \
57	iconize.cxx \
58	image.cxx \
59	inactive.cxx \
60	input.cxx \
61	input_choice.cxx \
62	keyboard.cxx \
63	label.cxx \
64	line_style.cxx \
65	list_visuals.cxx \
66	mandelbrot.cxx \
67	menubar.cxx \
68	message.cxx \
69	minimum.cxx \
70	native-filechooser.cxx \
71	navigation.cxx \
72	offscreen.cxx \
73	output.cxx \
74	overlay.cxx \
75	pack.cxx \
76	pixmap_browser.cxx \
77	pixmap.cxx \
78	preferences.cxx \
79	radio.cxx \
80	resize.cxx \
81	resizebox.cxx \
82	rotated_text.cxx \
83	scroll.cxx \
84	shape.cxx \
85	subwindow.cxx \
86	sudoku.cxx \
87	symbols.cxx \
88	table.cxx \
89	tabs.cxx \
90	threads.cxx \
91	tile.cxx \
92	tiled_image.cxx \
93	tree.cxx \
94	twowin.cxx \
95	unittests.cxx \
96	utf8.cxx \
97	valuators.cxx \
98	windowfocus.cxx
99
100ALL =	\
101	unittests$(EXEEXT) \
102	animated$(EXEEXT) \
103	adjuster$(EXEEXT) \
104	arc$(EXEEXT) \
105	ask$(EXEEXT) \
106	bitmap$(EXEEXT) \
107	blocks$(EXEEXT) \
108	boxtype$(EXEEXT) \
109	browser$(EXEEXT) \
110	button$(EXEEXT) \
111	buttons$(EXEEXT) \
112	cairo_test$(EXEEXT) \
113	checkers$(EXEEXT) \
114	clock$(EXEEXT) \
115	colbrowser$(EXEEXT) \
116	color_chooser$(EXEEXT) \
117	cursor$(EXEEXT) \
118	curve$(EXEEXT) \
119	demo$(EXEEXT) \
120	device$(EXEEXT) \
121	doublebuffer$(EXEEXT) \
122	editor$(EXEEXT) \
123	fast_slow$(EXEEXT) \
124	file_chooser$(EXEEXT) \
125	fltk-versions$(EXEEXT) \
126	fonts$(EXEEXT) \
127	forms$(EXEEXT) \
128	hello$(EXEEXT) \
129	help$(EXEEXT) \
130	icon$(EXEEXT) \
131	iconize$(EXEEXT) \
132	image$(EXEEXT) \
133	inactive$(EXEEXT) \
134	input$(EXEEXT) \
135	input_choice$(EXEEXT) \
136	keyboard$(EXEEXT) \
137	label$(EXEEXT) \
138	line_style$(EXEEXT) \
139	list_visuals$(EXEEXT) \
140	mandelbrot$(EXEEXT) \
141	menubar$(EXEEXT) \
142	message$(EXEEXT) \
143	minimum$(EXEEXT) \
144	native-filechooser$(EXEEXT) \
145	navigation$(EXEEXT) \
146	offscreen$(EXEEXT) \
147	output$(EXEEXT) \
148	overlay$(EXEEXT) \
149	pack$(EXEEXT) \
150	pixmap$(EXEEXT) \
151	pixmap_browser$(EXEEXT) \
152	preferences$(EXEEXT) \
153	device$(EXEEXT) \
154	radio$(EXEEXT) \
155	resize$(EXEEXT) \
156	resizebox$(EXEEXT) \
157	rotated_text$(EXEEXT) \
158	scroll$(EXEEXT) \
159	subwindow$(EXEEXT) \
160	sudoku$(EXEEXT) \
161	symbols$(EXEEXT) \
162	table$(EXEEXT) \
163	tabs$(EXEEXT) \
164	$(THREADS) \
165	tile$(EXEEXT) \
166	tiled_image$(EXEEXT) \
167	tree$(EXEEXT) \
168	twowin$(EXEEXT) \
169	valuators$(EXEEXT) \
170	utf8$(EXEEXT) \
171	windowfocus$(EXEEXT)
172
173
174GLALL = \
175	cube$(EXEEXT) \
176	CubeView$(EXEEXT) \
177	fractals$(EXEEXT) \
178	fullscreen$(EXEEXT) \
179	gl_overlay$(EXEEXT) \
180	glpuzzle$(EXEEXT) \
181	shape$(EXEEXT)
182
183all:	$(ALL) $(GLDEMOS)
184
185gldemos:	$(GLALL)
186
187depend:	$(CPPFILES)
188	makedepend -Y -I.. -f makedepend -w 20 $(CPPFILES)
189	echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > makedepend.tmp
190	echo "" >> makedepend.tmp
191	grep '^[a-zA-Z]' makedepend | ( LC_ALL=C sort -u -f >> makedepend.tmp; )
192	mv makedepend.tmp makedepend
193
194# Automatically generated dependencies...
195include makedepend
196
197clean:
198	$(RM) $(ALL) $(GLALL) core
199	$(RMDIR) *.app
200	$(RM) *.o core.* *~ *.bck *.bak
201	$(RM) CubeViewUI.cxx CubeViewUI.h
202	$(RM) fast_slow.cxx fast_slow.h
203	$(RM) inactive.cxx inactive.h
204	$(RM) keyboard_ui.cxx keyboard_ui.h
205	$(RM) mandelbrot_ui.cxx mandelbrot_ui.h
206	$(RM) preferences.cxx preferences.h
207	$(RM) radio.cxx radio.h
208	$(RM) resize.cxx resize.h
209	$(RM) tabs.cxx tabs.h
210	$(RM) tree.cxx tree.h
211	$(RM) valuators.cxx valuators.h
212
213install:	all
214	echo "Installing example programs to $(DESTDIR)/usr/local/share/examples/fltk..."
215	-$(INSTALL_DIR) $(DESTDIR)/usr/local/share/examples/fltk
216	for file in *.h *.cxx *.fl demo.menu; do \
217		$(INSTALL_DATA) $$file $(DESTDIR)/usr/local/share/examples/fltk; \
218	done
219	-$(INSTALL_DIR) $(DESTDIR)/usr/local/share/examples/fltk/pixmaps
220	for file in pixmaps/*.xbm pixmaps/*.xpm; do \
221		$(INSTALL_DATA) $$file $(DESTDIR)/usr/local/share/examples/fltk/pixmaps; \
222	done
223
224install-linux:
225	echo Installing games to $(DESTDIR)$(bindir)...
226	-$(INSTALL_DIR) $(DESTDIR)$(bindir)
227	-$(INSTALL_DIR) $(DESTDIR)/usr/share/applications
228	-$(INSTALL_DIR) $(DESTDIR)/usr/share/icons/hicolor/32x32/apps
229	-$(INSTALL_DIR) $(DESTDIR)/usr/share/icons/hicolor/128x128/apps
230	for game in blocks checkers sudoku; do \
231		$(INSTALL_BIN) $$game $(DESTDIR)$(bindir); \
232		$(INSTALL_DATA) desktop/$$game.desktop  $(DESTDIR)/usr/share/applications; \
233		$(INSTALL_DATA) desktop/$$game-32.png $(DESTDIR)/usr/share/icons/hicolor/32x32/apps/$$game.png; \
234		$(INSTALL_DATA) desktop/$$game-128.png $(DESTDIR)/usr/share/icons/hicolor/128x128/apps/$$game.png; \
235	done
236
237install-osx:
238	echo Installing games in $(DESTDIR)/Applications...
239	for game in blocks checkers sudoku; do \
240		if test ! -d $(DESTDIR)/Applications/$$game.app; then \
241			$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app; \
242			$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app/Contents; \
243			$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app/Contents/MacOS; \
244			$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app/Contents/Resources; \
245		fi; \
246		$(INSTALL_DATA) $$game.app/Contents/Info.plist $(DESTDIR)/Applications/$$game.app/Contents; \
247		$(INSTALL_BIN) $$game.app/Contents/MacOS/$$game $(DESTDIR)/Applications/$$game.app/Contents/MacOS; \
248		$(INSTALL_DATA) $$game.app/Contents/Resources/$$game.icns $(DESTDIR)/Applications/$$game.app/Contents/Resources; \
249	done
250
251uninstall:
252	echo "Removing examples programs from $(DESTDIR)/usr/local/share/examples/fltk..."
253	-$(RMDIR) $(DESTDIR)/usr/local/share/examples/fltk
254
255uninstall-linux:
256	echo Removing games from $(DESTDIR)$(bindir)...
257	for game in blocks checkers sudoku; do \
258		$(RM) $(DESTDIR)$(bindir)/$$game; \
259		$(RM) $(DESTDIR)/usr/share/applications/$$game.desktop; \
260		$(RM) $(DESTDIR)/usr/share/icons/hicolor/32x32/apps/$$game.png; \
261		$(RM) $(DESTDIR)/usr/share/icons/hicolor/128x128/apps/$$game.png; \
262	done
263
264uninstall-osx:
265	echo Removing games from $(DESTDIR)/Applications...
266	$(RMDIR) $(DESTDIR)/Applications/blocks.app
267	$(RMDIR) $(DESTDIR)/Applications/checkers.app
268	$(RMDIR) $(DESTDIR)/Applications/sudoku.app
269
270# FLUID file rules
271.fl.cxx .fl.h:
272	echo Generating $@ and header from $<...
273	$(FLUID_BUILD) -c $<
274
275# All demos depend on the FLTK library...
276$(ALL): $(LIBNAME)
277
278# General demos...
279unittests$(EXEEXT): unittests.o
280
281unittests.o: unittests.cxx unittest_about.cxx unittest_points.cxx unittest_lines.cxx unittest_circles.cxx \
282	unittest_rects.cxx unittest_text.cxx unittest_symbol.cxx unittest_viewport.cxx unittest_images.cxx \
283	unittest_schemes.cxx unittest_scrollbarsize.cxx
284
285adjuster$(EXEEXT): adjuster.o
286
287animated$(EXEEXT): animated.o
288
289arc$(EXEEXT): arc.o
290
291ask$(EXEEXT): ask.o
292
293bitmap$(EXEEXT): bitmap.o
294
295boxtype$(EXEEXT): boxtype.o
296
297browser$(EXEEXT): browser.o
298
299button$(EXEEXT): button.o
300
301buttons$(EXEEXT): buttons.o
302
303blocks$(EXEEXT): blocks.o
304	echo Linking $@...
305	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) blocks.o -o $@ $(AUDIOLIBS) $(LINKFLTK) $(LDLIBS)
306	$(OSX_ONLY) $(RM) -f -r blocks.app
307	$(OSX_ONLY) mkdir -p blocks.app/Contents/MacOS blocks.app/Contents/Resources
308	$(OSX_ONLY) $(INSTALL_BIN) blocks$(EXEEXT) blocks.app/Contents/MacOS
309	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/blocks.icns blocks.app/Contents/Resources/
310	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/blocks.plist blocks.app/Contents/Info.plist
311
312checkers$(EXEEXT): checkers.o
313	echo Linking $@...
314	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) checkers.o -o $@ $(LINKFLTK) $(LDLIBS)
315	$(OSX_ONLY) $(RM) -f -r checkers.app
316	$(OSX_ONLY) mkdir -p checkers.app/Contents/MacOS checkers.app/Contents/Resources
317	$(OSX_ONLY) $(INSTALL_BIN) checkers$(EXEEXT) checkers.app/Contents/MacOS
318	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/checkers.icns checkers.app/Contents/Resources/
319	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/checkers.plist checkers.app/Contents/Info.plist
320
321clock$(EXEEXT): clock.o
322
323colbrowser$(EXEEXT): colbrowser.o
324	echo Linking $@...
325	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ colbrowser.o $(LINKFLTK) $(LDLIBS)
326	$(OSX_ONLY) ../fltk-config --post $@
327	$(OSX_ONLY) mkdir -p colbrowser.app/Contents/Resources
328	$(OSX_ONLY) cp -f rgb.txt colbrowser.app/Contents/Resources/
329
330color_chooser$(EXEEXT): color_chooser.o
331
332cursor$(EXEEXT): cursor.o
333
334curve$(EXEEXT): curve.o
335
336demo$(EXEEXT): demo.o
337	echo Linking $@...
338	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ demo.o $(LINKFLTK) $(LDLIBS)
339	$(OSX_ONLY) ../fltk-config --post $@
340	$(OSX_ONLY) mkdir -p demo.app/Contents/Resources
341	$(OSX_ONLY) cp -f demo.menu demo.app/Contents/Resources/
342
343device$(EXEEXT): device.o $(IMGLIBNAME)
344	echo Linking $@...
345	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) device.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
346	$(OSX_ONLY) ../fltk-config --post $@
347
348doublebuffer$(EXEEXT): doublebuffer.o
349
350editor$(EXEEXT): editor.o
351	echo Linking $@...
352	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) editor.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
353	$(OSX_ONLY) ../fltk-config --post $@
354	$(OSX_ONLY) cp -f mac-resources/editor.plist editor.app/Contents/Info.plist
355
356fast_slow$(EXEEXT): fast_slow.o
357fast_slow.cxx:	fast_slow.fl ../fluid/fluid$(EXEEXT)
358
359file_chooser$(EXEEXT): file_chooser.o $(IMGLIBNAME)
360	echo Linking $@...
361	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) file_chooser.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
362	$(OSX_ONLY) ../fltk-config --post $@
363
364fltk-versions$(EXEEXT): fltk-versions.o
365
366fonts$(EXEEXT): fonts.o
367
368forms$(EXEEXT): forms.o
369	echo Linking $@...
370	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ forms.o $(LINKFLTKFORMS) $(LDLIBS)
371	$(OSX_ONLY) ../fltk-config --post $@
372
373hello$(EXEEXT): hello.o
374
375help$(EXEEXT): help.o $(IMGLIBNAME)
376	echo Linking $@...
377	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) help.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
378	$(OSX_ONLY) ../fltk-config --post $@
379	$(OSX_ONLY) mkdir -p help.app/Contents/Resources
380	$(OSX_ONLY) cp -f help_dialog.html help.app/Contents/Resources/
381
382icon$(EXEEXT): icon.o
383
384iconize$(EXEEXT): iconize.o
385
386image$(EXEEXT): image.o
387
388inactive$(EXEEXT): inactive.o
389inactive.cxx:	inactive.fl ../fluid/fluid$(EXEEXT)
390
391input$(EXEEXT): input.o
392
393input_choice$(EXEEXT): input_choice.o
394
395keyboard$(EXEEXT): keyboard_ui.o keyboard.o
396	echo Linking $@...
397	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ keyboard.o keyboard_ui.o $(LINKFLTK) $(LDLIBS)
398	$(OSX_ONLY) ../fltk-config --post $@
399keyboard_ui.o:	keyboard_ui.h
400keyboard_ui.cxx:	keyboard_ui.fl ../fluid/fluid$(EXEEXT)
401
402label$(EXEEXT): label.o
403	echo Linking $@...
404	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ label.o $(LINKFLTK) $(LDLIBS)
405	$(OSX_ONLY) ../fltk-config --post $@
406
407line_style$(EXEEXT): line_style.o
408
409list_visuals$(EXEEXT): list_visuals.o
410
411mandelbrot$(EXEEXT): mandelbrot_ui.o mandelbrot.o
412	echo Linking $@...
413	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ mandelbrot.o mandelbrot_ui.o $(LINKFLTK) $(LDLIBS)
414	$(OSX_ONLY) ../fltk-config --post $@
415mandelbrot_ui.o:	mandelbrot_ui.h
416mandelbrot_ui.cxx:	mandelbrot_ui.fl ../fluid/fluid$(EXEEXT)
417
418menubar$(EXEEXT): menubar.o
419
420message$(EXEEXT): message.o
421
422minimum$(EXEEXT): minimum.o
423
424native-filechooser$(EXEEXT): native-filechooser.o $(IMGLIBNAME)
425	echo Linking $@...
426	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) native-filechooser.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
427	$(OSX_ONLY) ../fltk-config --post $@
428
429navigation$(EXEEXT): navigation.o
430
431offscreen$(EXEEXT): offscreen.o
432
433output$(EXEEXT): output.o $(FLLIBNAME)
434	echo Linking $@...
435	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ output.o $(LINKFLTK) $(LDLIBS)
436	$(OSX_ONLY) ../fltk-config --post $@
437
438overlay$(EXEEXT): overlay.o
439
440pack$(EXEEXT): pack.o
441
442pixmap$(EXEEXT): pixmap.o
443
444pixmap_browser$(EXEEXT): pixmap_browser.o $(IMGLIBNAME)
445	echo Linking $@...
446	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) pixmap_browser.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
447	$(OSX_ONLY) ../fltk-config --post $@
448
449preferences$(EXEEXT):	preferences.o
450preferences.cxx:	preferences.fl ../fluid/fluid$(EXEEXT)
451
452device$(EXEEXT): device.o
453
454radio$(EXEEXT): radio.o
455radio.cxx:	radio.fl ../fluid/fluid$(EXEEXT)
456
457resize$(EXEEXT): resize.o
458resize.cxx:	resize.fl ../fluid/fluid$(EXEEXT)
459
460resizebox$(EXEEXT): resizebox.o
461
462rotated_text$(EXEEXT): rotated_text.o
463
464scroll$(EXEEXT): scroll.o
465
466subwindow$(EXEEXT): subwindow.o
467
468sudoku: sudoku.o
469	echo Linking $@...
470	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) sudoku.o -o $@ $(AUDIOLIBS) $(LINKFLTKIMG) $(LDLIBS)
471	$(OSX_ONLY) $(RM) -f -r sudoku.app
472	$(OSX_ONLY) mkdir -p sudoku.app/Contents/MacOS sudoku.app/Contents/Resources
473	$(OSX_ONLY) $(INSTALL_BIN) sudoku$(EXEEXT) sudoku.app/Contents/MacOS
474	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/sudoku.icns sudoku.app/Contents/Resources/
475	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/sudoku.plist sudoku.app/Contents/Info.plist
476
477sudoku.exe: sudoku.o sudoku.rc
478	echo Linking $@...
479	$(RC) sudoku.rc sudokures.o
480	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) sudoku.o sudokures.o -o $@ $(AUDIOLIBS) $(LINKFLTKIMG) $(LDLIBS)
481
482symbols$(EXEEXT): symbols.o
483
484table$(EXEEXT): table.o
485
486tabs$(EXEEXT): tabs.o
487tabs.cxx:	tabs.fl ../fluid/fluid$(EXEEXT)
488
489threads$(EXEEXT): threads.o
490# This ensures that we have this dependency even if threads are not
491# enabled in the current tree...
492threads.o:	threads.h
493
494tile$(EXEEXT): tile.o
495
496tiled_image$(EXEEXT): tiled_image.o
497
498tree$(EXEEXT): tree.o
499tree.cxx:	tree.fl ../fluid/fluid$(EXEEXT)
500
501twowin$(EXEEXT): twowin.o
502
503valuators$(EXEEXT): valuators.o
504valuators.cxx:	valuators.fl ../fluid/fluid$(EXEEXT)
505
506# All OpenGL demos depend on the FLTK and FLTK_GL libraries...
507$(GLALL): $(LIBNAME) $(GLLIBNAME)
508
509# OpenGL demos...
510CubeView$(EXEEXT): CubeMain.o CubeView.o CubeViewUI.o
511	echo Linking $@...
512	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ \
513		CubeMain.o CubeView.o CubeViewUI.o \
514		$(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
515	$(OSX_ONLY) ../fltk-config --post $@
516CubeMain.o: CubeViewUI.h CubeView.h CubeViewUI.cxx
517CubeView.o: CubeView.h
518CubeViewUI.o:	CubeViewUI.cxx CubeViewUI.h
519CubeViewUI.cxx:	CubeViewUI.fl ../fluid/fluid$(EXEEXT)
520
521cube$(EXEEXT): cube.o
522	echo Linking $@...
523	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ cube.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
524	$(OSX_ONLY) ../fltk-config --post $@
525
526fractals$(EXEEXT): fractals.o fracviewer.o
527	echo Linking $@...
528	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ fractals.o fracviewer.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
529	$(OSX_ONLY) ../fltk-config --post $@
530
531fullscreen$(EXEEXT): fullscreen.o
532	echo Linking $@...
533	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ fullscreen.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
534	$(OSX_ONLY) ../fltk-config --post $@
535
536glpuzzle$(EXEEXT): glpuzzle.o
537	echo Linking $@...
538	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ glpuzzle.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
539	$(OSX_ONLY) ../fltk-config --post $@
540
541gl_overlay$(EXEEXT): gl_overlay.o
542	echo Linking $@...
543	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ gl_overlay.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
544	$(OSX_ONLY) ../fltk-config --post $@
545
546shape$(EXEEXT): shape.o
547	echo Linking $@...
548	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ shape.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
549	$(OSX_ONLY) ../fltk-config --post $@
550
551cairo_test$(EXEEXT): cairo_test.o
552	echo Linking $@...
553	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(CAIROFLAGS) $(LDFLAGS) -o $@ cairo_test.o $(LINKFLTK) $(LINKFLTKCAIRO) $(GLDLIBS)
554	$(OSX_ONLY) ../fltk-config --post $@
555