head	1.8;
access;
symbols
	pkgsrc-2024Q4:1.7.0.112
	pkgsrc-2024Q4-base:1.7
	pkgsrc-2024Q3:1.7.0.110
	pkgsrc-2024Q3-base:1.7
	pkgsrc-2024Q2:1.7.0.108
	pkgsrc-2024Q2-base:1.7
	pkgsrc-2024Q1:1.7.0.106
	pkgsrc-2024Q1-base:1.7
	pkgsrc-2023Q4:1.7.0.104
	pkgsrc-2023Q4-base:1.7
	pkgsrc-2023Q3:1.7.0.102
	pkgsrc-2023Q3-base:1.7
	pkgsrc-2023Q2:1.7.0.100
	pkgsrc-2023Q2-base:1.7
	pkgsrc-2023Q1:1.7.0.98
	pkgsrc-2023Q1-base:1.7
	pkgsrc-2022Q4:1.7.0.96
	pkgsrc-2022Q4-base:1.7
	pkgsrc-2022Q3:1.7.0.94
	pkgsrc-2022Q3-base:1.7
	pkgsrc-2022Q2:1.7.0.92
	pkgsrc-2022Q2-base:1.7
	pkgsrc-2022Q1:1.7.0.90
	pkgsrc-2022Q1-base:1.7
	pkgsrc-2021Q4:1.7.0.88
	pkgsrc-2021Q4-base:1.7
	pkgsrc-2021Q3:1.7.0.86
	pkgsrc-2021Q3-base:1.7
	pkgsrc-2021Q2:1.7.0.84
	pkgsrc-2021Q2-base:1.7
	pkgsrc-2021Q1:1.7.0.82
	pkgsrc-2021Q1-base:1.7
	pkgsrc-2020Q4:1.7.0.80
	pkgsrc-2020Q4-base:1.7
	pkgsrc-2020Q3:1.7.0.78
	pkgsrc-2020Q3-base:1.7
	pkgsrc-2020Q2:1.7.0.74
	pkgsrc-2020Q2-base:1.7
	pkgsrc-2020Q1:1.7.0.54
	pkgsrc-2020Q1-base:1.7
	pkgsrc-2019Q4:1.7.0.76
	pkgsrc-2019Q4-base:1.7
	pkgsrc-2019Q3:1.7.0.72
	pkgsrc-2019Q3-base:1.7
	pkgsrc-2019Q2:1.7.0.70
	pkgsrc-2019Q2-base:1.7
	pkgsrc-2019Q1:1.7.0.68
	pkgsrc-2019Q1-base:1.7
	pkgsrc-2018Q4:1.7.0.66
	pkgsrc-2018Q4-base:1.7
	pkgsrc-2018Q3:1.7.0.64
	pkgsrc-2018Q3-base:1.7
	pkgsrc-2018Q2:1.7.0.62
	pkgsrc-2018Q2-base:1.7
	pkgsrc-2018Q1:1.7.0.60
	pkgsrc-2018Q1-base:1.7
	pkgsrc-2017Q4:1.7.0.58
	pkgsrc-2017Q4-base:1.7
	pkgsrc-2017Q3:1.7.0.56
	pkgsrc-2017Q3-base:1.7
	pkgsrc-2017Q2:1.7.0.52
	pkgsrc-2017Q2-base:1.7
	pkgsrc-2017Q1:1.7.0.50
	pkgsrc-2017Q1-base:1.7
	pkgsrc-2016Q4:1.7.0.48
	pkgsrc-2016Q4-base:1.7
	pkgsrc-2016Q3:1.7.0.46
	pkgsrc-2016Q3-base:1.7
	pkgsrc-2016Q2:1.7.0.44
	pkgsrc-2016Q2-base:1.7
	pkgsrc-2016Q1:1.7.0.42
	pkgsrc-2016Q1-base:1.7
	pkgsrc-2015Q4:1.7.0.40
	pkgsrc-2015Q4-base:1.7
	pkgsrc-2015Q3:1.7.0.38
	pkgsrc-2015Q3-base:1.7
	pkgsrc-2015Q2:1.7.0.36
	pkgsrc-2015Q2-base:1.7
	pkgsrc-2015Q1:1.7.0.34
	pkgsrc-2015Q1-base:1.7
	pkgsrc-2014Q4:1.7.0.32
	pkgsrc-2014Q4-base:1.7
	pkgsrc-2014Q3:1.7.0.30
	pkgsrc-2014Q3-base:1.7
	pkgsrc-2014Q2:1.7.0.28
	pkgsrc-2014Q2-base:1.7
	pkgsrc-2014Q1:1.7.0.26
	pkgsrc-2014Q1-base:1.7
	pkgsrc-2013Q4:1.7.0.24
	pkgsrc-2013Q4-base:1.7
	pkgsrc-2013Q3:1.7.0.22
	pkgsrc-2013Q3-base:1.7
	pkgsrc-2013Q2:1.7.0.20
	pkgsrc-2013Q2-base:1.7
	pkgsrc-2013Q1:1.7.0.18
	pkgsrc-2013Q1-base:1.7
	pkgsrc-2012Q4:1.7.0.16
	pkgsrc-2012Q4-base:1.7
	pkgsrc-2012Q3:1.7.0.14
	pkgsrc-2012Q3-base:1.7
	pkgsrc-2012Q2:1.7.0.12
	pkgsrc-2012Q2-base:1.7
	pkgsrc-2012Q1:1.7.0.10
	pkgsrc-2012Q1-base:1.7
	pkgsrc-2011Q4:1.7.0.8
	pkgsrc-2011Q4-base:1.7
	pkgsrc-2011Q3:1.7.0.6
	pkgsrc-2011Q3-base:1.7
	pkgsrc-2011Q2:1.7.0.4
	pkgsrc-2011Q2-base:1.7
	pkgsrc-2011Q1:1.7.0.2
	pkgsrc-2011Q1-base:1.7
	pkgsrc-2009Q4:1.3.0.38
	pkgsrc-2009Q4-base:1.3
	pkgsrc-2008Q4:1.3.0.36
	pkgsrc-2008Q4-base:1.3
	pkgsrc-2008Q3:1.3.0.34
	pkgsrc-2008Q3-base:1.3
	cube-native-xorg:1.3.0.32
	cube-native-xorg-base:1.3
	pkgsrc-2008Q2:1.3.0.30
	pkgsrc-2008Q2-base:1.3
	pkgsrc-2008Q1:1.3.0.28
	pkgsrc-2008Q1-base:1.3
	pkgsrc-2007Q4:1.3.0.26
	pkgsrc-2007Q4-base:1.3
	pkgsrc-2007Q3:1.3.0.24
	pkgsrc-2007Q3-base:1.3
	pkgsrc-2007Q2:1.3.0.22
	pkgsrc-2007Q2-base:1.3
	pkgsrc-2007Q1:1.3.0.20
	pkgsrc-2007Q1-base:1.3
	pkgsrc-2006Q4:1.3.0.18
	pkgsrc-2006Q4-base:1.3
	pkgsrc-2006Q3:1.3.0.16
	pkgsrc-2006Q3-base:1.3
	pkgsrc-2006Q2:1.3.0.14
	pkgsrc-2006Q2-base:1.3
	pkgsrc-2006Q1:1.3.0.12
	pkgsrc-2006Q1-base:1.3
	pkgsrc-2005Q4:1.3.0.10
	pkgsrc-2005Q4-base:1.3
	pkgsrc-2005Q3:1.3.0.8
	pkgsrc-2005Q3-base:1.3
	pkgsrc-2005Q2:1.3.0.6
	pkgsrc-2005Q2-base:1.3
	pkgsrc-2005Q1:1.3.0.4
	pkgsrc-2005Q1-base:1.3
	pkgsrc-2004Q4:1.3.0.2
	pkgsrc-2004Q4-base:1.3
	pkgsrc-2004Q3:1.2.0.6
	pkgsrc-2004Q3-base:1.2
	pkgsrc-2004Q2:1.2.0.4
	pkgsrc-2004Q2-base:1.2
	pkgsrc-2004Q1:1.2.0.2
	pkgsrc-2004Q1-base:1.2
	pkgsrc-2003Q4:1.1.0.10
	pkgsrc-2003Q4-base:1.1
	netbsd-1-6-1:1.1.0.6
	netbsd-1-6-1-base:1.1
	netbsd-1-6:1.1.0.8
	netbsd-1-6-RELEASE-base:1.1
	pkgviews:1.1.0.4
	pkgviews-base:1.1
	buildlink2:1.1.0.2
	buildlink2-base:1.1
	netbsd-1-5-PATCH003:1.1;
locks; strict;
comment	@# @;


1.8
date	2025.01.31.12.22.44;	author micha;	state dead;
branches;
next	1.7;
commitid	WdzQjQ7XVnt2oDHF;

1.7
date	2011.03.01.09.53.16;	author wiz;	state Exp;
branches;
next	1.6;

1.6
date	2011.02.28.15.38.13;	author wiz;	state Exp;
branches;
next	1.5;

1.5
date	2011.01.24.14.44.02;	author wiz;	state Exp;
branches;
next	1.4;

1.4
date	2011.01.14.11.08.20;	author wiz;	state Exp;
branches;
next	1.3;

1.3
date	2004.10.21.08.30.22;	author adam;	state dead;
branches;
next	1.2;

1.2
date	2004.02.18.05.07.34;	author ben;	state Exp;
branches;
next	1.1;

1.1
date	2001.05.26.06.37.46;	author jlam;	state Exp;
branches;
next	;


desc
@@


1.8
log
@x11/fltk: Update to 1.4.1

Part of FLTK 1.4 transition (Step 1).

- Switch to Github
- Add license
- Take maintainership

Changes in FLTK 1.4.1                                   Released: Dec 12 2024

  FLTK 1.4.1 is a maintenance release with bug fixes and improvements.

  Bug Fixes

  - Fix rounding issues with Fl_RGB_Image::draw() + window scaling (#1128)
  - Fix fullscreen regression on macOS( #1129)
  - Fix fl_draw_image sometimes crashes when window is scaled (#1134)
  - Fix: Can't control scale of Fl_Copy_Surface dimensions on Linux (#1135)
  - Improve output of 'fltk-options -h' and 'fltk-options -L*'
  - Windows: Fix rescale bug while window is maximized or fullscreen
  - Fix graphical glitches on 101 DPI screen (#1138)
  - Fix changed flag for radio buttons (#1146)
  - Fix Fl_Scroll with real *_BOX draws over scrollbars at non-default scales (#1149)
  - Fix drawing bugs on Windows at very large scales (#1144)
  - Fix button down state when triggered by shortcut (#1145)
  - Give access to some Fl_Text_Display member variables (#1153)
  - Fix: Mouse hover + Enter key selects inactive menu items (#1159)
  - Fix hang/infinite loop on submenu with all inactive/invisible items (#1158)
  - Fix triggering callback for inactive menu items (#1159)
  - Fix inconsistencies with Tab/Backspace handling in menus (#1157)
  - Fix Fl_Menu_Item::measure() width calculation (#1164)
  - Fix drawing issue for checkbox buttons with bad box type (#1130)
  - Fix: Window can be moved while menu is open (#1166)

  Image libraries

  - Update bundled libpng to version 1.6.44

  Fixes and Improvements in Fluid:

  - Fix autodocs file leak and memory leak
  - Fix autodoc image memory allocation
  - Fix project modflags when adding shell commands
  - Avoid generating undo on spurious relayout events (#1152)
  - Minor improvements to buffer handling (#1152)
  - Clear cached browser values and cached pointers (#1152)
  - Fix default settings tab
  - Avoid trailing spaces in empty comment lines (#1161)
  - Command line arguments '-v' and '--version' show fltk version
  - Command line argument '--help' shows brief usage information

  Optional ABI changes: these require configure or CMake option
    to define FL_ABI_VERSION = 10401

  - Increase clipping stack size from 10 to 64 entries (#1139)
  - Fix potential (likely false positive) compiler warning in Fl_Help_View

  Documentation Improvements

  - Update build instructions in README.Unix.txt (#67)
  - Update README.Windows.txt
  - Update README.CMake.txt for cross-building (#1154)
  - Document that fl_scroll() doesn't work OK with non-integral scaling factors
  - Add details about fl_override_scale() and clip
  - Clarify use of Fl_Tabs::client_area()
  - Fix Makefile example in chapter "FLTK Basics"

  Improvements and minor Fixes in Test and Demo Programs

  - MSVC: Fix array allocation in test/fltk-versions (#1131)
  - Enable building the CubeView demo w/o requiring '<config.h>'
  - Use a constant frame rate (25 fps) in test/cube demo
  - Add comment linking source code to related information in issue #1149
  - Improve timer statistics in test/cube demo
  - glpuzzle: fix timer and trackball max speed, make smoother animation at 72fps

  Technical Details and Build Procedure Improvements

  - Fix FL_EXPORT qualifiers
  - Fix compiler warnings
  - Remove unnecessary friend declaration
  - Restore building with configure --disable-print (#1147)
  - macOS: Improve procedure to construct best link command
  - Fix: Building with FLTK_BUILD_GL=0 fails on systems without opengl installed (#1151)
  - Don't link to libgtk when using package libdecor-0-dev
  - Update makesrcdist for releases on GitHub (1.4.1 and higher)
  - Update CHANGES.txt for release 1.4.1


Changes in FLTK 1.4.0                                   Released: Nov 17 2024

  Bug Fixes:

  - Windows: Fix "fullscreen_off does not correctly preserve window size" (#1116)
  - Fix rounding issues with Fl_RGB_Image::draw() + Fl_Copy_Surface (#1120, #1124)
  - Windows: Fix "Keyboard shortcut (alt+letter) does not work in input widget" (#1122)
  - macOS: Fix Alt-modifier handling in Fl_Shorcut_Button
  - Windows: Fix flicker/animation when transitioning from fullscreen to maximized
  - Wayland: protect against rounding errors in copy_region()

  Documentation and other Improvements:

  - Revert gtk+ specific "chevron style" arrow drawing (#1117)
  - Update CREDITS.txt
  - Improve 'test/fltk-versions' demo program
@
text
@$NetBSD: patch-ah,v 1.7 2011/03/01 09:53:16 wiz Exp $

Fix build with png-1.5.
http://www.fltk.org/str.php?L2542+P0+S-2+C0+I0+E0+Q

--- src/Fl_PNG_Image.cxx.orig	2006-06-09 16:16:34.000000000 +0000
+++ src/Fl_PNG_Image.cxx
@@@@ -66,6 +66,7 @@@@ Fl_PNG_Image::Fl_PNG_Image(const char *p
   png_structp	pp;			// PNG read pointer
   png_infop	info;			// PNG info pointers
   png_bytep	*rows;			// PNG row pointers
+  int		num_trans = 0;		// PNG # of transp. colors
 
 
   // Open the PNG file...
@@@@ -75,7 +76,7 @@@@ Fl_PNG_Image::Fl_PNG_Image(const char *p
   pp   = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
   info = png_create_info_struct(pp);
 
-  if (setjmp(pp->jmpbuf))
+  if (setjmp(png_jmpbuf(pp)))
   {
     Fl::warning("PNG file \"%s\" contains errors!\n", png);
     return;
@@@@ -87,27 +88,28 @@@@ Fl_PNG_Image::Fl_PNG_Image(const char *p
   // Get the image dimensions and convert to grayscale or RGB...
   png_read_info(pp, info);
 
-  if (info->color_type == PNG_COLOR_TYPE_PALETTE)
+  if (png_get_color_type(pp, info) == PNG_COLOR_TYPE_PALETTE)
     png_set_expand(pp);
 
-  if (info->color_type & PNG_COLOR_MASK_COLOR)
+  if (png_get_color_type(pp, info) & PNG_COLOR_MASK_COLOR)
     channels = 3;
   else
     channels = 1;
 
-  if ((info->color_type & PNG_COLOR_MASK_ALPHA) || info->num_trans)
+  png_get_tRNS(pp, info, 0, &num_trans, 0);
+  if ((png_get_color_type(pp, info) & PNG_COLOR_MASK_ALPHA) || num_trans)
     channels ++;
 
-  w((int)(info->width));
-  h((int)(info->height));
+  w((int)(png_get_image_width(pp, info)));
+  h((int)(png_get_image_height(pp, info)));
   d(channels);
 
-  if (info->bit_depth < 8)
+  if (png_get_bit_depth(pp, info) < 8)
   {
     png_set_packing(pp);
     png_set_expand(pp);
   }
-  else if (info->bit_depth == 16)
+  else if (png_get_bit_depth(pp, info) == 16)
     png_set_strip_16(pp);
 
 #  if defined(HAVE_PNG_GET_VALID) && defined(HAVE_PNG_SET_TRNS_TO_ALPHA)
@


1.7
log
@Probably final version of patch. Bump PKGREVISION.
@
text
@d1 1
a1 1
$NetBSD: patch-ah,v 1.6 2011/02/28 15:38:13 wiz Exp $
@


1.6
log
@Update to match changes in upstream bug report.
@
text
@d1 1
a1 1
$NetBSD: patch-ah,v 1.5 2011/01/24 14:44:02 wiz Exp $
d8 1
a8 1
@@@@ -66,6 +66,9 @@@@ Fl_PNG_Image::Fl_PNG_Image(const char *p
d12 1
a12 3
+  png_bytep	trans_alpha;
+  int		num_trans;
+  png_color_16p	trans_color;
d16 1
a16 1
@@@@ -75,7 +78,7 @@@@ Fl_PNG_Image::Fl_PNG_Image(const char *p
d25 1
a25 1
@@@@ -87,27 +90,28 @@@@ Fl_PNG_Image::Fl_PNG_Image(const char *p
d40 1
a40 1
+  png_get_tRNS(pp, info, &trans_alpha, &num_trans, &trans_color);
@


1.5
log
@Add upstream bug report URL.
@
text
@d1 1
a1 1
$NetBSD: patch-ah,v 1.4 2011/01/14 11:08:20 wiz Exp $
d8 11
a18 1
@@@@ -75,7 +75,7 @@@@ Fl_PNG_Image::Fl_PNG_Image(const char *p
d27 1
a27 1
@@@@ -87,27 +87,21 @@@@ Fl_PNG_Image::Fl_PNG_Image(const char *p
d36 4
a39 4
-    channels = 3;
-  else
-    channels = 1;
+  channels = png_get_channels(pp, info);
d42 4
a45 2
-    channels ++;
-
@


1.4
log
@Fix build with png-1.5.
@
text
@d1 1
a1 1
$NetBSD$
d4 1
@


1.3
log
@Patches no longer needed
@
text
@d1 1
a1 1
$NetBSD: patch-ah,v 1.2 2004/02/18 05:07:34 ben Exp $
d3 47
a49 30
--- src/Fl_Text_Buffer.cxx.orig	2003-05-28 09:09:12.000000000 -0700
+++ src/Fl_Text_Buffer.cxx
@@@@ -935,7 +935,8 @@@@ int Fl_Text_Buffer::expand_character( ch
   /* Convert control codes to readable character sequences */
   /*... is this safe with international character sets? */
   if ( ( ( unsigned char ) c ) <= 31 ) {
-    sprintf( outStr, "<%s>", ControlCodeTable[ c ] );
+    i = c;
+    sprintf( outStr, "<%s>", ControlCodeTable[ i ] );
     return strlen( outStr );
   } else if ( c == 127 ) {
     sprintf( outStr, "<del>" );
@@@@ -958,12 +959,14 @@@@ int Fl_Text_Buffer::expand_character( ch
 ** to ignore).
 */
 int Fl_Text_Buffer::character_width( char c, int indent, int tabDist, char nullSubsChar ) {
+  int i;
   /* Note, this code must parallel that in Fl_Text_Buffer::ExpandCharacter */
   if ( c == '\t' )
     return tabDist - ( indent % tabDist );
-  else if ( ( ( unsigned char ) c ) <= 31 )
-    return strlen( ControlCodeTable[ c ] ) + 2;
-  else if ( c == 127 )
+  else if ( ( ( unsigned char ) c ) <= 31 ) {
+    i = c;
+    return strlen( ControlCodeTable[ i ] ) + 2;
+  } else if ( c == 127 )
     return 5;
   else if ( c == nullSubsChar )
     return 5;
@


1.2
log
@Update from FLTK 1.0.11 to FLTK 1.1.4.
@
text
@d1 1
a1 1
$NetBSD: patch-ah,v 1.1 2001/05/26 06:37:46 jlam Exp $
@


1.1
log
@Update fltk to 1.0.11.  Changes from version 1.0.10 include bugfixes and:

- Added new const const pointer versions of pixmap functions to eliminate
  an annoying pointer warning message that was generated by the Sun and
  other C++ compilers.

- Eliminated all "var hides class::var" warnings.

- Eliminated all "string literal converted to char *" warnings.

- The file chooser buttons use user_data() rather than the label to decide
  what to do, allowing the label to be somewhat cleaner.

- Fl_has_idle only tested N-1 callbacks and missed one.

- Fl_Gl_Window has a new method to allow you to get and set the context:

      void Fl_Gl_Window::context(void*, int destroy = 0)
      void* Fl_Gl_Window::context() const;

  Return or set a pointer to the GLContext that this window is using. This
  is a system-dependent structure, but it is portable to copy the context
  from one window to another. You can also set it to NULL, which will
  force FLTK to recreate the context the next time make_current() is
  called, this is useful for getting around bugs in OpenGL implementations.

  If destroy_flag is true the context will be destroyed by fltk when the
  window is destroyed, or when the mode() is changed, or the next time
  context(x) is called.

- Added Fl::add_check(...), Fl::remove_check, and Fl::has_check. These are
  similar to idle callbacks but are only called just before it waits for
  new events.  They can be used to watch for changes in global state and
  respond to them.

- Added simple FLTK and FLUID manual pages.
@
text
@d1 1
a1 1
$NetBSD$
d3 30
a32 69
--- test/Makefile.orig	Mon Jan 22 10:13:41 2001
+++ test/Makefile
@@@@ -56,52 +56,52 @@@@
 .fl:
 	echo Generating, compiling, and linking $@@...
 	../fluid/fluid -c $<
-	$(CXX) -I.. -L../lib $(CXXFLAGS) $@@.cxx -lfltk $(LDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) $@@.cxx $(LINKFLTK) $(LDLIBS) -o $@@
 
 
-$(ALL):  ../lib/$(LIBNAME)
+$(ALL):  $(LIBFLTK)
 
 # Other programs needing special "help"...
 CubeView: CubeMain.o CubeView.o CubeViewUI.o
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) CubeMain.o CubeView.o CubeViewUI.o \
-		-lfltk $(GLDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) CubeMain.o CubeView.o CubeViewUI.o \
+		$(LINKFLTK) $(GLDLIBS) -o $@@
 CubeMain.o: CubeViewUI.h CubeView.h
 CubeView.o: CubeView.h
 
 cube: cube.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) cube.cxx -lfltk $(GLDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) cube.cxx $(LINKFLTK) $(GLDLIBS) -o $@@
 fractals: fractals.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) fractals.cxx -lfltk $(GLDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) fractals.cxx $(LINKFLTK) $(GLDLIBS) -o $@@
 fullscreen: fullscreen.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) fullscreen.cxx -lfltk $(GLDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) fullscreen.cxx $(LINKFLTK) $(GLDLIBS) -o $@@
 glpuzzle: glpuzzle.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) glpuzzle.cxx -lfltk $(GLDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) glpuzzle.cxx $(LINKFLTK) $(GLDLIBS) -o $@@
 gl_overlay: gl_overlay.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) gl_overlay.cxx -lfltk $(GLDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) gl_overlay.cxx $(LINKFLTK) $(GLDLIBS) -o $@@
 shiny: shiny.cxx shiny_panel.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) shiny.cxx -lfltk $(GLDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) shiny.cxx $(LINKFLTK) $(GLDLIBS) -o $@@
 keyboard: keyboard.cxx keyboard_ui.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) keyboard.cxx -lfltk $(LDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) keyboard.cxx $(LINKFLTK) $(LDLIBS) -o $@@
 mandelbrot: mandelbrot.cxx mandelbrot_ui.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) mandelbrot.cxx -lfltk $(LDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) mandelbrot.cxx $(LINKFLTK) $(LDLIBS) -o $@@
 shape: shape.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) shape.cxx -lfltk $(GLDLIBS) -o $@@
+	$(CXX) -I.. $(CXXFLAGS) shape.cxx $(LINKFLTK) $(GLDLIBS) -o $@@
 
 # If you have libjpeg installed, you might want to try this test program:
 
 jpeg_image: jpeg_image.cxx
 	echo Compiling and linking $@@...
-	$(CXX) -I.. -L../lib $(CXXFLAGS) -I../../../local/jpeg-6b -L../../../local/jpeg-6b jpeg_image.cxx -lfltk $(LDLIBS) -ljpeg -lXext -o $@@
+	$(CXX) -I.. $(CXXFLAGS) -I../../../local/jpeg-6b -L../../../local/jpeg-6b jpeg_image.cxx $(LINKFLTK) $(LDLIBS) -ljpeg -lXext -o $@@
 
 depend:
 	$(MAKEDEPEND) -I.. $(CXXFLAGS) $(CPPFILES) > makedepend
@

