fltk/test/Makefile
ManoloFLTK 6c876189d8 Fix MacOS-specific regression appeared with move to git when building test with configure.
The svn contained empty directories, e.g., test/blocks.app/Contents/MacOS/
Git apparently can't store empty directories.
The test/Makefile is modified to create these directories at build-time.
2018-12-09 16:34:49 +01:00

557 lines
15 KiB
Makefile

#
# "$Id$"
#
# Test/example program makefile for the Fast Light Tool Kit (FLTK).
#
# Copyright 1998-2017 by Bill Spitzak and others.
#
# This library is free software. Distribution and use rights are outlined in
# the file "COPYING" which should have been included with this file. If this
# file is missing or damaged, see the license at:
#
# http://www.fltk.org/COPYING.php
#
# Please report all bugs and problems on the following page:
#
# http://www.fltk.org/str.php
#
include ../makeinclude
CPPFILES =\
unittests.cxx \
animated.cxx \
adjuster.cxx \
arc.cxx \
ask.cxx \
bitmap.cxx \
blocks.cxx \
boxtype.cxx \
browser.cxx \
button.cxx \
buttons.cxx \
cairo_test.cxx \
checkers.cxx \
clock.cxx \
colbrowser.cxx \
color_chooser.cxx \
cube.cxx \
CubeMain.cxx \
CubeView.cxx \
cursor.cxx \
curve.cxx \
demo.cxx \
device.cxx \
doublebuffer.cxx \
editor.cxx \
fast_slow.cxx \
file_chooser.cxx \
fonts.cxx \
forms.cxx \
fractals.cxx \
fullscreen.cxx \
gl_overlay.cxx \
glpuzzle.cxx \
hello.cxx \
help_dialog.cxx \
icon.cxx \
iconize.cxx \
image.cxx \
inactive.cxx \
input.cxx \
input_choice.cxx \
keyboard.cxx \
label.cxx \
line_style.cxx \
list_visuals.cxx \
mandelbrot.cxx \
menubar.cxx \
message.cxx \
minimum.cxx \
native-filechooser.cxx \
navigation.cxx \
offscreen.cxx \
output.cxx \
overlay.cxx \
pack.cxx \
pixmap_browser.cxx \
pixmap.cxx \
preferences.cxx \
device.cxx \
radio.cxx \
resizebox.cxx \
resize.cxx \
rotated_text.cxx \
scroll.cxx \
shape.cxx \
subwindow.cxx \
sudoku.cxx \
symbols.cxx \
table.cxx \
tabs.cxx \
threads.cxx \
tile.cxx \
tiled_image.cxx \
tree.cxx \
twowin.cxx \
valuators.cxx \
utf8.cxx \
windowfocus.cxx
ALL = \
unittests$(EXEEXT) \
animated$(EXEEXT) \
adjuster$(EXEEXT) \
arc$(EXEEXT) \
ask$(EXEEXT) \
bitmap$(EXEEXT) \
blocks$(EXEEXT) \
boxtype$(EXEEXT) \
browser$(EXEEXT) \
button$(EXEEXT) \
buttons$(EXEEXT) \
cairo_test$(EXEEXT) \
checkers$(EXEEXT) \
clock$(EXEEXT) \
colbrowser$(EXEEXT) \
color_chooser$(EXEEXT) \
cursor$(EXEEXT) \
curve$(EXEEXT) \
demo$(EXEEXT) \
device$(EXEEXT) \
doublebuffer$(EXEEXT) \
editor$(EXEEXT) \
fast_slow$(EXEEXT) \
file_chooser$(EXEEXT) \
fonts$(EXEEXT) \
forms$(EXEEXT) \
hello$(EXEEXT) \
help_dialog$(EXEEXT) \
icon$(EXEEXT) \
iconize$(EXEEXT) \
image$(EXEEXT) \
inactive$(EXEEXT) \
input$(EXEEXT) \
input_choice$(EXEEXT) \
keyboard$(EXEEXT) \
label$(EXEEXT) \
line_style$(EXEEXT) \
list_visuals$(EXEEXT) \
mandelbrot$(EXEEXT) \
menubar$(EXEEXT) \
message$(EXEEXT) \
minimum$(EXEEXT) \
native-filechooser$(EXEEXT) \
navigation$(EXEEXT) \
offscreen$(EXEEXT) \
output$(EXEEXT) \
overlay$(EXEEXT) \
pack$(EXEEXT) \
pixmap$(EXEEXT) \
pixmap_browser$(EXEEXT) \
preferences$(EXEEXT) \
device$(EXEEXT) \
radio$(EXEEXT) \
resize$(EXEEXT) \
resizebox$(EXEEXT) \
rotated_text$(EXEEXT) \
scroll$(EXEEXT) \
subwindow$(EXEEXT) \
sudoku$(EXEEXT) \
symbols$(EXEEXT) \
table$(EXEEXT) \
tabs$(EXEEXT) \
$(THREADS) \
tile$(EXEEXT) \
tiled_image$(EXEEXT) \
tree$(EXEEXT) \
twowin$(EXEEXT) \
valuators$(EXEEXT) \
cairotest$(EXEEXT) \
utf8$(EXEEXT) \
windowfocus$(EXEEXT)
GLALL = \
cube$(EXEEXT) \
CubeView$(EXEEXT) \
fractals$(EXEEXT) \
fullscreen$(EXEEXT) \
gl_overlay$(EXEEXT) \
glpuzzle$(EXEEXT) \
shape$(EXEEXT)
all: $(ALL) $(GLDEMOS)
gldemos: $(GLALL)
depend: $(CPPFILES)
makedepend -Y -I.. -f makedepend $(CPPFILES)
# Automatically generated dependencies...
include makedepend
clean:
$(RM) $(ALL) $(GLALL) core
for file in $(ALL) $(GLALL); do \
if [ $$file = "blocks" -o $$file = "checkers" -o $$file = "sudoku" ]; then \
continue; \
fi; \
$(OSX_ONLY) rm -f -r $$file.app; \
done
$(RM) *.o core.* *~ *.bck *.bak
$(RM) CubeViewUI.cxx CubeViewUI.h
$(RM) fast_slow.cxx fast_slow.h
$(RM) inactive.cxx inactive.h
$(RM) keyboard_ui.cxx keyboard_ui.h
$(RM) mandelbrot_ui.cxx mandelbrot_ui.h
$(RM) preferences.cxx preferences.h
$(RM) radio.cxx radio.h
$(RM) resize.cxx resize.h
$(RM) tabs.cxx tabs.h
$(RM) tree.cxx tree.h
$(RM) valuators.cxx valuators.h
$(OSX_ONLY) $(RM) blocks.app/Contents/MacOS/blocks$(EXEEXT)
$(OSX_ONLY) $(RM) checkers.app/Contents/MacOS/checkers$(EXEEXT)
$(OSX_ONLY) $(RM) sudoku.app/Contents/MacOS/sudoku$(EXEEXT)
install: all
echo "Installing example programs to $(DESTDIR)$(docdir)/examples..."
-$(INSTALL_DIR) $(DESTDIR)$(docdir)/examples
for file in *.h *.cxx *.fl demo.menu; do \
$(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/examples; \
done
-$(INSTALL_DIR) $(DESTDIR)$(docdir)/examples/pixmaps
for file in pixmaps/*.xbm pixmaps/*.xpm; do \
$(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/examples/pixmaps; \
done
install-linux:
echo Installing games to $(DESTDIR)$(bindir)...
-$(INSTALL_DIR) $(DESTDIR)$(bindir)
-$(INSTALL_DIR) $(DESTDIR)/usr/share/applications
-$(INSTALL_DIR) $(DESTDIR)/usr/share/icons/hicolor/32x32/apps
-$(INSTALL_DIR) $(DESTDIR)/usr/share/icons/hicolor/128x128/apps
for game in blocks checkers sudoku; do \
$(INSTALL_BIN) $$game $(DESTDIR)$(bindir); \
$(INSTALL_DATA) desktop/$$game.desktop $(DESTDIR)/usr/share/applications; \
$(INSTALL_DATA) desktop/$$game-32.png $(DESTDIR)/usr/share/icons/hicolor/32x32/apps/$$game.png; \
$(INSTALL_DATA) desktop/$$game-128.png $(DESTDIR)/usr/share/icons/hicolor/128x128/apps/$$game.png; \
done
install-osx:
echo Installing games in $(DESTDIR)/Applications...
for game in blocks checkers sudoku; do \
if test ! -d $(DESTDIR)/Applications/$$game.app; then \
$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app; \
$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app/Contents; \
$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app/Contents/MacOS; \
$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app/Contents/Resources; \
fi; \
$(INSTALL_DATA) $$game.app/Contents/Info.plist $(DESTDIR)/Applications/$$game.app/Contents; \
$(INSTALL_DATA) $$game.app/Contents/PkgInfo $(DESTDIR)/Applications/$$game.app/Contents; \
$(INSTALL_BIN) $$game.app/Contents/MacOS/$$game $(DESTDIR)/Applications/$$game.app/Contents/MacOS; \
$(INSTALL_DATA) $$game.app/Contents/Resources/$$game.icns $(DESTDIR)/Applications/$$game.app/Contents/Resources; \
done
uninstall:
echo "Removing examples programs from $(DESTDIR)$(docdir)/examples..."
-$(RMDIR) $(DESTDIR)$(docdir)/examples
uninstall-linux:
echo Removing games from $(DESTDIR)$(bindir)...
for game in blocks checkers sudoku; do \
$(RM) $(DESTDIR)$(bindir)/$$game; \
$(RM) $(DESTDIR)/usr/share/applications/$$game.desktop; \
$(RM) $(DESTDIR)/usr/share/icons/hicolor/32x32/apps/$$game.png; \
$(RM) $(DESTDIR)/usr/share/icons/hicolor/128x128/apps/$$game.png; \
done
uninstall-osx:
echo Removing games from $(DESTDIR)/Applications...
$(RMDIR) $(DESTDIR)/Applications/blocks.app
$(RMDIR) $(DESTDIR)/Applications/checkers.app
$(RMDIR) $(DESTDIR)/Applications/sudoku.app
# FLUID file rules
.fl.cxx .fl.h: ../fluid/fluid$(EXEEXT)
echo Generating $@ and header from $<...
../fluid/fluid$(EXEEXT) -c $<
# All demos depend on the FLTK library...
$(ALL): $(LIBNAME)
# General demos...
unittests$(EXEEXT): unittests.o
unittests.o: unittests.cxx unittest_about.cxx unittest_points.cxx unittest_lines.cxx unittest_circles.cxx \
unittest_rects.cxx unittest_text.cxx unittest_symbol.cxx unittest_viewport.cxx unittest_images.cxx \
unittest_schemes.cxx unittest_simple_terminal.cxx
adjuster$(EXEEXT): adjuster.o
animated$(EXEEXT): animated.o
arc$(EXEEXT): arc.o
ask$(EXEEXT): ask.o
bitmap$(EXEEXT): bitmap.o
boxtype$(EXEEXT): boxtype.o
browser$(EXEEXT): browser.o
button$(EXEEXT): button.o
buttons$(EXEEXT): buttons.o
blocks$(EXEEXT): blocks.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) blocks.o -o $@ $(AUDIOLIBS) $(LINKFLTK) $(LDLIBS)
$(OSX_ONLY) $(RM) -f -r blocks.app/Contents/MacOS
$(OSX_ONLY) mkdir blocks.app/Contents/MacOS
$(OSX_ONLY) $(INSTALL_BIN) blocks$(EXEEXT) blocks.app/Contents/MacOS
checkers$(EXEEXT): checkers.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) checkers.o -o $@ $(LINKFLTK) $(LDLIBS)
$(OSX_ONLY) $(RM) -f -r checkers.app/Contents/MacOS
$(OSX_ONLY) mkdir checkers.app/Contents/MacOS
$(OSX_ONLY) $(INSTALL_BIN) checkers$(EXEEXT) checkers.app/Contents/MacOS
clock$(EXEEXT): clock.o
colbrowser$(EXEEXT): colbrowser.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ colbrowser.o $(LINKFLTKFORMS) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
$(OSX_ONLY) mkdir -p colbrowser.app/Contents/Resources
$(OSX_ONLY) cp -f rgb.txt colbrowser.app/Contents/Resources/
color_chooser$(EXEEXT): color_chooser.o
cursor$(EXEEXT): cursor.o
curve$(EXEEXT): curve.o
demo$(EXEEXT): demo.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ demo.o $(LINKFLTKFORMS) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
$(OSX_ONLY) mkdir -p demo.app/Contents/Resources
$(OSX_ONLY) cp -f demo.menu demo.app/Contents/Resources/
device$(EXEEXT): device.o $(IMGLIBNAME)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) device.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
doublebuffer$(EXEEXT): doublebuffer.o
editor$(EXEEXT): editor.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) editor.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
$(OSX_ONLY) cp -f editor-Info.plist editor.app/Contents/Info.plist
fast_slow$(EXEEXT): fast_slow.o
fast_slow.cxx: fast_slow.fl ../fluid/fluid$(EXEEXT)
file_chooser$(EXEEXT): file_chooser.o $(IMGLIBNAME)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) file_chooser.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
fonts$(EXEEXT): fonts.o
forms$(EXEEXT): forms.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ forms.o $(LINKFLTKFORMS) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
hello$(EXEEXT): hello.o
help_dialog$(EXEEXT): help_dialog.o $(IMGLIBNAME)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) help_dialog.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
$(OSX_ONLY) mkdir -p help_dialog.app/Contents/Resources
$(OSX_ONLY) cp -f help_dialog.html help_dialog.app/Contents/Resources/
icon$(EXEEXT): icon.o
iconize$(EXEEXT): iconize.o
image$(EXEEXT): image.o
inactive$(EXEEXT): inactive.o
inactive.cxx: inactive.fl ../fluid/fluid$(EXEEXT)
input$(EXEEXT): input.o
input_choice$(EXEEXT): input_choice.o
keyboard$(EXEEXT): keyboard_ui.o keyboard.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ keyboard.o keyboard_ui.o $(LINKFLTK) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
keyboard_ui.o: keyboard_ui.h
keyboard_ui.cxx: keyboard_ui.fl ../fluid/fluid$(EXEEXT)
label$(EXEEXT): label.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ label.o $(LINKFLTKFORMS) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
line_style$(EXEEXT): line_style.o
list_visuals$(EXEEXT): list_visuals.o
mandelbrot$(EXEEXT): mandelbrot_ui.o mandelbrot.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ mandelbrot.o mandelbrot_ui.o $(LINKFLTK) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
mandelbrot_ui.o: mandelbrot_ui.h
mandelbrot_ui.cxx: mandelbrot_ui.fl ../fluid/fluid$(EXEEXT)
menubar$(EXEEXT): menubar.o
message$(EXEEXT): message.o
minimum$(EXEEXT): minimum.o
native-filechooser$(EXEEXT): native-filechooser.o $(IMGLIBNAME)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) native-filechooser.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
navigation$(EXEEXT): navigation.o
offscreen$(EXEEXT): offscreen.o
output$(EXEEXT): output.o $(FLLIBNAME)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ output.o $(LINKFLTKFORMS) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
overlay$(EXEEXT): overlay.o
pack$(EXEEXT): pack.o
pixmap$(EXEEXT): pixmap.o
pixmap_browser$(EXEEXT): pixmap_browser.o $(IMGLIBNAME)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) pixmap_browser.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
preferences$(EXEEXT): preferences.o
preferences.cxx: preferences.fl ../fluid/fluid$(EXEEXT)
device$(EXEEXT): device.o
radio$(EXEEXT): radio.o
radio.cxx: radio.fl ../fluid/fluid$(EXEEXT)
resize$(EXEEXT): resize.o
resize.cxx: resize.fl ../fluid/fluid$(EXEEXT)
resizebox$(EXEEXT): resizebox.o
rotated_text$(EXEEXT): rotated_text.o
scroll$(EXEEXT): scroll.o
subwindow$(EXEEXT): subwindow.o
sudoku: sudoku.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) sudoku.o -o $@ $(AUDIOLIBS) $(LINKFLTKIMG) $(LDLIBS)
$(OSX_ONLY) $(RM) -r -f sudoku.app/Contents/MacOS
$(OSX_ONLY) mkdir sudoku.app/Contents/MacOS
$(OSX_ONLY) $(INSTALL_BIN) sudoku$(EXEEXT) sudoku.app/Contents/MacOS
sudoku.exe: sudoku.o sudoku.rc
echo Linking $@...
$(RC) sudoku.rc sudokures.o
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) sudoku.o sudokures.o -o $@ $(AUDIOLIBS) $(LINKFLTKIMG) $(LDLIBS)
symbols$(EXEEXT): symbols.o
table$(EXEEXT): table.o
tabs$(EXEEXT): tabs.o
tabs.cxx: tabs.fl ../fluid/fluid$(EXEEXT)
threads$(EXEEXT): threads.o
# This ensures that we have this dependency even if threads are not
# enabled in the current tree...
threads.o: threads.h
tile$(EXEEXT): tile.o
tiled_image$(EXEEXT): tiled_image.o
tree$(EXEEXT): tree.o
tree.cxx: tree.fl ../fluid/fluid$(EXEEXT)
twowin$(EXEEXT): twowin.o
valuators$(EXEEXT): valuators.o
valuators.cxx: valuators.fl ../fluid/fluid$(EXEEXT)
# All OpenGL demos depend on the FLTK and FLTK_GL libraries...
$(GLALL): $(LIBNAME) $(GLLIBNAME)
# OpenGL demos...
CubeView$(EXEEXT): CubeMain.o CubeView.o CubeViewUI.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ \
CubeMain.o CubeView.o CubeViewUI.o \
$(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
CubeMain.o: CubeViewUI.h CubeView.h CubeViewUI.cxx
CubeView.o: CubeView.h
CubeViewUI.o: CubeViewUI.cxx CubeViewUI.h
CubeViewUI.cxx: CubeViewUI.fl ../fluid/fluid$(EXEEXT)
cube$(EXEEXT): cube.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ cube.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
fractals$(EXEEXT): fractals.o fracviewer.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ fractals.o fracviewer.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
fullscreen$(EXEEXT): fullscreen.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ fullscreen.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
glpuzzle$(EXEEXT): glpuzzle.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ glpuzzle.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
gl_overlay$(EXEEXT): gl_overlay.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ gl_overlay.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
shape$(EXEEXT): shape.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ shape.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
cairo_test$(EXEEXT): cairo_test.o
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(CAIROFLAGS) $(LDFLAGS) -o $@ cairo_test.o $(LINKFLTK) $(LINKFLTKCAIRO) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
#
# End of "$Id$".
#