fltk/fluid/Makefile
Albrecht Schlosser 1209e9dcd7 Make Fl_String and Fl_Int_Vector private (#789)
- add CMake option 'OPTION_USE_STD'
- add configure option '--enable-use_std'
- move FL/Fl_String.H to src/Fl_String.H
- move FL/Fl_Int_Vector.H to src/Fl_Int_Vector.H
- remove Fl_String from demo program examples/callbacks.cxx
- remove Fl_Int_Vector from public header FL/Fl_Table.H
- some methods of Fl_Table are no longer inline
- add CMake option OPTION_USE_STD to allow std::string in some
  selected functions and methods

Experimental, may be removed before release:

- use either Fl_Int_Vector or std::vector in Fl_Table depending
  on CMake OPTION_USE_STD or configure --enable-use_std

Move all fl_filename* functions that use Fl_String to fluid

Main changes in fluid:
 - add fluid_filename.h and .cxx
 - include "fluid_filename.h" rather than <FL/filename.H>

Update fl_input(), fl_password() and test/ask

- add maxchar parameter to fl_input() and fl_password()
- fl_input_str() and fl_password_str() are optional and return
  std::string if enabled (FLTK_USE_STD)
2023-10-22 19:35:17 +02:00

151 lines
5.0 KiB
Makefile

#
# FLUID Makefile for the Fast Light Tool Kit (FLTK).
#
# Copyright 1998-2023 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:
#
# https://www.fltk.org/COPYING.php
#
# Please see the following page on how to report bugs and issues:
#
# https://www.fltk.org/bugs.php
#
include ../makeinclude
CPPFILES = \
CodeEditor.cxx \
StyleParse.cxx \
Fd_Snap_Action.cxx \
Fl_Button_Type.cxx \
Fl_Function_Type.cxx \
Fl_Grid_Type.cxx \
Fl_Group_Type.cxx \
Fl_Menu_Type.cxx \
Fl_Type.cxx \
Fl_Widget_Type.cxx \
Fl_Window_Type.cxx \
Fluid_Image.cxx \
about_panel.cxx \
align_widget.cxx \
alignment_panel.cxx \
code.cxx \
custom_widgets.cxx \
factory.cxx \
file.cxx \
fluid.cxx \
fluid_filename.cxx \
function_panel.cxx \
pixmaps.cxx \
shell_command.cxx \
sourceview_panel.cxx \
template_panel.cxx \
undo.cxx \
widget_browser.cxx \
widget_panel.cxx
# ExternalCodeEditor: platform specific files
CPPFILES_WIN = ExternalCodeEditor_WIN32.cxx
CPPFILES_OSX = ExternalCodeEditor_UNIX.cxx
CPPFILES_X11 = ExternalCodeEditor_UNIX.cxx
CPPFILES_XFT = ExternalCodeEditor_UNIX.cxx
CPPFILES_CAIRO = ExternalCodeEditor_UNIX.cxx
CPPFILES_WAYLAND = ExternalCodeEditor_UNIX.cxx
CPPFILES_WAYLANDX11 = ExternalCodeEditor_UNIX.cxx
CPPFILES += $(CPPFILES_$(BUILD))
################################################################
OBJECTS = $(CPPFILES:.cxx=.o)
all: $(FLUID) fluid$(EXEEXT)
fluid$(EXEEXT): $(OBJECTS) $(LIBNAME) $(FLLIBNAME) \
$(IMGLIBNAME)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) -o $@ $(OBJECTS) $(LINKFLTKIMG) $(LDFLAGS) $(LDLIBS)
$(OSX_ONLY) $(RM) -r -f fluid.app
$(OSX_ONLY) mkdir -p fluid.app/Contents/MacOS fluid.app/Contents/Resources
$(OSX_ONLY) $(INSTALL_BIN) fluid fluid.app/Contents/MacOS
$(OSX_ONLY) $(INSTALL) icons/fluid.icns fluid.app/Contents/Resources
$(OSX_ONLY) $(INSTALL) fluid.plist fluid.app/Contents/Info.plist
fluid-shared$(EXEEXT): $(OBJECTS) ../src/$(DSONAME) ../src/$(FLDSONAME) \
../src/$(IMGDSONAME)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(CXXFLAGS) -o $@ $(OBJECTS) $(LINKSHARED) $(LDFLAGS) $(LDLIBS)
clean:
-$(RM) *.o core.* *~ *.bck *.bak
-$(RM) core fluid$(EXEEXT) fluid-shared$(EXEEXT)
$(OSX_ONLY) -$(RMDIR) fluid.app
depend: $(CPPFILES)
makedepend -Y -I.. -f makedepend -w 20 $(CPPFILES)
echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > makedepend.tmp
echo "" >> makedepend.tmp
grep '^[a-zA-Z]' makedepend | ( LC_ALL=C sort -u -f >> makedepend.tmp; )
mv makedepend.tmp makedepend
# Automatically generated dependencies...
include makedepend
install: all
echo "Installing FLUID in $(DESTDIR)$(bindir)..."
-$(INSTALL_DIR) $(DESTDIR)$(bindir)
$(INSTALL_BIN) $(FLUID) $(DESTDIR)$(bindir)/fluid$(EXEEXT)
install-linux:
-$(INSTALL_DIR) $(DESTDIR)/usr/share/applications
$(INSTALL_DATA) fluid.desktop $(DESTDIR)/usr/share/applications
for size in 16 32 48 64 128; do \
if test ! -d $(DESTDIR)/usr/share/icons/hicolor/$${size}x$${size}/apps; then \
$(INSTALL_DIR) $(DESTDIR)/usr/share/icons/hicolor/$${size}x$${size}/apps; \
fi; \
$(INSTALL_DATA) icons/fluid-$$size.png $(DESTDIR)/usr/share/icons/hicolor/$${size}x$${size}/apps/fluid.png; \
done
-$(INSTALL_DIR) $(DESTDIR)/usr/share/mimelnk/application
$(INSTALL_DATA) x-fluid.desktop $(DESTDIR)/usr/share/mimelnk/application
install-osx:
echo Installing Fluid in $(DESTDIR)/Applications...
-$(INSTALL_DIR) $(DESTDIR)/Applications/fluid.app
-$(INSTALL_DIR) $(DESTDIR)/Applications/fluid.app/Contents
$(INSTALL_DATA) fluid.app/Contents/Info.plist $(DESTDIR)/Applications/fluid.app/Contents/Info.plist
-$(INSTALL_DIR) $(DESTDIR)/Applications/fluid.app/Contents/MacOS
$(RM) $(DESTDIR)/Applications/fluid.app/Contents/MacOS/fluid
$(LN) $(bindir)/fluid $(DESTDIR)/Applications/fluid.app/Contents/MacOS/fluid
-$(INSTALL_DIR) $(DESTDIR)/Applications/fluid.app/Contents/Resources
$(INSTALL_DATA) fluid.app/Contents/Resources/fluid.icns $(DESTDIR)/Applications/fluid.app/Contents/Resources
uninstall:
$(RM) $(DESTDIR)$(bindir)/fluid$(EXEEXT)
uninstall-linux:
$(RM) $(DESTDIR)/usr/share/applications/fluid.desktop
$(RM) $(DESTDIR)/usr/share/icons/hicolor/*/fluid.png
$(RM) $(DESTDIR)/usr/share/mimelnk/application/x-fluid.desktop
uninstall-osx:
$(RM) -r $(DESTDIR)/Applications/fluid.app
# Note: The rebuild target can only be used if you have the original .fl
# files. This is normally only used by the FLTK maintainers...
# It *must* be executed *after* fluid has been built and
# fluid must be rebuilt if any {.fl|.cxx|.h} files were changed.
rebuild: fluid$(EXEEXT)
echo 'Rebuilding fluid (.fl) and .cxx/.h files from .fl files ...'
./fluid$(EXEEXT) -u -c about_panel.fl
./fluid$(EXEEXT) -u -c alignment_panel.fl
./fluid$(EXEEXT) -u -c function_panel.fl
./fluid$(EXEEXT) -u -c print_panel.fl
./fluid$(EXEEXT) -u -c sourceview_panel.fl
./fluid$(EXEEXT) -u -c template_panel.fl
./fluid$(EXEEXT) -u -c widget_panel.fl