From 59dbcd5621219f58ab9f14b0ebbcbd64ecd7aa35 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Tue, 5 Dec 2023 17:53:12 +0100 Subject: [PATCH] Update CHANGES, README, README.CMake.txt, support files ... and documentation - makesrcdist: - reflect changes in fltk.spec.in - create fltk_git_revision.dat in source distribution --- CHANGES | 29 +++-- README | 12 +- README.CMake.txt | 221 +++++++++++++++++++++++------------- documentation/src/fltk.man | 22 ++-- documentation/src/intro.dox | 9 +- fltk.list.in | 12 +- fltk.spec.in | 14 +-- makesrcdist | 25 ++-- 8 files changed, 215 insertions(+), 129 deletions(-) diff --git a/CHANGES b/CHANGES index b977e5178..9a53919a7 100644 --- a/CHANGES +++ b/CHANGES @@ -1,8 +1,13 @@ -CHANGES IN FLTK 1.3.9 RELEASED: Dec ?? 2023 +CHANGES IN FLTK 1.3.9 RELEASED: Dec 09 2023 FLTK 1.3.9 is a maintenance release with some fixes and enhancements. -Highlights: this release supports macOS up to macOS 14 "Sonoma". +Highlights in this release: + + - Support macOS up to macOS 14 "Sonoma". + - Update bundled libraries to current versions. + - Introduce bundled image library "prefixing" to avoid conflicts + with system libraries. Details: @@ -18,17 +23,21 @@ Details: Remove unused variable, fix "type issue" (#445, part 2) Fix stack buffer overflow found by address sanitizer Fix "gtk+ rendering" (GitHub Issue #443) + Fix doxygen warnings + Bump version numbers, prepare release 1.3.9 + Fix several compiler warnings + Update bundled image libraries and zlib to current versions + Update README, README.CMake.txt, and some support files ManoloFLTK: - macOS platform: fix for issue #325 Disabling IM disables Greek and Cyrillic layouts - Fix fullscreen window level corner cases on macOS - cont'd - Fix for issue #373 apparent with macOS platform and SDK ≤ 10.13 - Fix for issue #452: Fl::get_font_name failure on OS-X. - Fix for issue #454: crash in Fl::get_font_name(). - Issue #469: Fl_Sys_Menu_Bar menu item shortcuts using Escape or Tab do not work on Mac - Add support of macOS Ventura 13.0 and macOS Sonoma 14.0 + macOS platform: Issue #325 "Disabling IM disables Greek and Cyrillic layouts" + Fix fullscreen window level corner cases on macOS + Fix issue #373 apparent with macOS platform and SDK ≤ 10.13 + Issue #452: Fl::get_font_name failure on OS-X. + Issue #454: crash in Fl::get_font_name(). + Issue #469: Fl_Sys_Menu_Bar menu item shortcuts using Escape or Tab don't work on Mac Fix "Focus is lost leaving full screen on macOS 13" (#608) - Add support for macOS Sonoma 14 + Add support of macOS Ventura 13.0 and macOS Sonoma 14.0 YX: Fix IME problem (issue #270) diff --git a/README b/README index 2e68e73ae..2b0b63754 100644 --- a/README +++ b/README @@ -3,12 +3,12 @@ README - Fast Light Tool Kit (FLTK) Version 1.3.9 WHAT IS FLTK? - The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a - a cross-platform C++ GUI toolkit for UNIX(r)/Linux(r) (X11), - Microsoft(r) Windows(r), and MacOS(r) X. FLTK provides - modern GUI functionality without the bloat and supports 3D - graphics via OpenGL(r) and its built-in GLUT emulation. It - was originally developed by Mr. Bill Spitzak and is + The Fast Light Tool Kit ("FLTK") is a cross-platform C++ GUI + toolkit for UNIX(r)/Linux(r) (X11), Microsoft(r) Windows(r), + and macOS(r). FLTK provides modern GUI functionality without + bloat and supports 3D graphics via OpenGL(r) and its built-in + GLUT emulation. + It was originally developed by Mr. Bill Spitzak and is currently maintained by a small group of developers across the world with a central repository in the US. diff --git a/README.CMake.txt b/README.CMake.txt index 0e0c3b8ef..56b3abd83 100644 --- a/README.CMake.txt +++ b/README.CMake.txt @@ -16,11 +16,13 @@ README.CMake.txt - Building and using FLTK with CMake 2.7 Crosscompiling 3 Using CMake with FLTK 3.1 Library Names - 3.2 Using Fluid Files + 3.2 Building a Simple "Hello World" Program with FLTK + 3.3 Building a Program Using Fluid Files + 3.4 Building a Program Using CMake's FetchContent Module 4 Document History - 1. INTRODUCTION TO CMAKE + 1. Introduction to CMake =========================== CMake was designed to let you create build files for a project once and @@ -92,6 +94,12 @@ CMAKE_INSTALL_PREFIX Where everything will go on install. Defaults are /usr/local for Unix and C:\Program Files\FLTK for Windows. +CMAKE_OSX_ARCHITECTURES (macOS only, ignored on other platforms) + Set this to either "arm64", "x86_64", or a list of both "arm64;x86_64". + The latter will build "universal apps" on macOS, whereas the former + will either build Intel (x86_64) or Apple Silicon aka M1 (arm64) apps. + The default is to build for the host processor architecture. + The following are the FLTK specific options. Platform specific options are ignored on other platforms. @@ -119,8 +127,14 @@ FLTK_BUILD_TEST - default ON FLTK_BUILD_EXAMPLES - default OFF Builds the example programs in the 'examples' directory. +FLTK_MSVC_RUNTIME_DLL - default ON (only for Visual Studio and NMake). + Selects whether the build uses the MS runtime DLL or not. + Default is ON: either /MD or /MDd for Release or Debug, respectively. + Select OFF for either /MT or /MTd for Release or Debug, respectively. + OPTION_CAIRO - default OFF - Enables libcairo support - see README.Cairo.txt. + Enables support of class Fl_Cairo_Window (all platforms, requires the + Cairo library) - see README.Cairo.txt. OPTION_CAIROEXT - default OFF Enables extended libcairo support - see README.Cairo.txt. @@ -134,9 +148,9 @@ OPTION_USE_THREADS - default ON OPTION_LARGE_FILE - default ON Enables large file (>2G) support. -OPTION_USE_SYSTEM_LIBJPEG - default ON -OPTION_USE_SYSTEM_ZLIB - default ON -OPTION_USE_SYSTEM_LIBPNG - default ON +OPTION_USE_SYSTEM_LIBJPEG - default ON (macOS: OFF) +OPTION_USE_SYSTEM_LIBPNG - default ON (macOS: OFF) +OPTION_USE_SYSTEM_ZLIB - default ON FLTK has built in jpeg, zlib, and png libraries. These options let you use system libraries instead, unless CMake can't find them. If you set any of these options to OFF, then the built in library will be used. @@ -165,12 +179,15 @@ Documentation options: these options are only available if `doxygen' is OPTION_BUILD_HTML_DOCUMENTATION - default ON OPTION_BUILD_PDF_DOCUMENTATION - default ON These options can be used to switch HTML documentation generation with - doxygen on. The build targets ('html', 'pdf', or 'docs') need still to - be executed explicitly. + doxygen on. If these are ON the build targets 'html', 'pdf', and 'docs' + are generated but must be built explicitly. Technically the build targets + are generated but excluded from 'ALL'. You can safely leave these two + options ON if you want to save build time because the docs are not + built automatically. OPTION_INSTALL_HTML_DOCUMENTATION - default OFF OPTION_INSTALL_PDF_DOCUMENTATION - default OFF - If these options are ON then the HTML and/or PDF docs get installed + If these options are ON then the HTML and/or PDF docs are installed when the 'install' target is executed, e.g. with `make install'. You need to select above options OPTION_BUILD_*_DOCUMENTATION as well. @@ -425,53 +442,75 @@ fltk-config. For example, if you link your program to the FLTK library, it will automatically link in all of its dependencies. This includes any special flags, i.e. on Linux it includes the -lpthread flag. -This howto assumes that you have FLTK libraries which were built using -CMake, installed. Building them with CMake generates some CMake helper -files which are installed in standard locations, making FLTK easy to find -and use. +This howto assumes that you have FLTK libraries which were built using CMake, +installed. Building them with CMake generates some CMake helper files which +are installed in standard locations, making FLTK easy to find and use. + +In the following examples we set the CMake cache variable 'FLTK_DIR' so +CMake knows where to find the FLTK configuration file 'FLTKConfig.cmake'. +It is important (recommended practice) to set this as a CMake cache variable +which enables the user executing 'cmake' to override this path either on the +commandline or interactively using the CMake GUI 'cmake-gui' or 'ccmake' on +Unix/Linux, for instance like this: + + $ mkdir build + $ cd build + $ cmake -G "Unix Makefiles" -S.. -D "FLTK_DIR=/home/me/fltk" + + + 3.1 Library Names +-------------------- + +When you use the target_link_libraries() command, CMake uses its own internal +"target names" for libraries. The fltk library names are: + + fltk fltk_forms fltk_images fltk_gl + +and for the shared libraries (if built): + + fltk_SHARED fltk_forms_SHARED fltk_images_SHARED fltk_gl_SHARED + +The built-in libraries (if built): + + fltk_jpeg fltk_png fltk_z + + + 3.2 Building a Simple "Hello World" Program with FLTK +-------------------------------------------------------- Here is a basic CMakeLists.txt file using FLTK. ------- - -cmake_minimum_required(VERSION 3.2.3) +--- +cmake_minimum_required(VERSION 3.15) project(hello) -# The following line is required only if (a) you didn't install FLTK -# or if (b) find_package can't find your installation directory because -# you installed FLTK in a non-standard location. It points to -# (a) the base folder of the build directory, or -# (b) /share/fltk -# resp., where is the installation prefix you -# used to install FLTK. -# (The file FLTKConfig.cmake and others must be found in that path.) +set(FLTK_DIR "/path/to/fltk" + CACHE FILEPATH "FLTK installation or build directory") -set(FLTK_DIR /path/to/fltk) - -find_package(FLTK REQUIRED NO_MODULE) +find_package(FLTK REQUIRED CONFIG) add_executable(hello WIN32 MACOSX_BUNDLE hello.cxx) if (APPLE) - target_link_libraries(hello "-framework cocoa") + target_link_libraries (hello PRIVATE "-framework cocoa") endif (APPLE) -target_include_directories(hello PUBLIC ${FLTK_INCLUDE_DIRS}) +target_include_directories (hello PRIVATE ${FLTK_INCLUDE_DIRS}) -target_link_libraries(hello fltk) - ------- +target_link_libraries (hello PRIVATE fltk) +--- The set(FLTK_DIR ...) command is a superhint to the find_package command. This is very useful if you don't install or have a non-standard install. The find_package command tells CMake to find the package FLTK, REQUIRED -means that it is an error if it's not found. NO_MODULE tells it to search +means that it is an error if it's not found. CONFIG tells it to search only for the FLTKConfig file, not using the FindFLTK.cmake supplied with CMake, which doesn't work with this version of FLTK. -The "WIN32 MACOSX_BUNDLE" in the add_executable tells this is -a GUI app. It is ignored on other platforms and should always be -present with FLTK GUI programs for better portability. +The "WIN32 MACOSX_BUNDLE" in the add_executable tells this is a GUI app. +It is ignored on other platforms and should always be present with FLTK +GUI programs for better portability - unless you explicitly need to build +a "console program", e.g. on Windows. Once the package is found the CMake variable FLTK_INCLUDE_DIRS is defined which can be used to add the FLTK include directories to the definitions @@ -481,61 +520,48 @@ The target_link_libraries() command is used to specify all necessary FLTK libraries. Thus, you may have to add fltk_images, fltk_gl, etc… Note: the variable FLTK_USE_FILE used to include another file in -previous FLTK versions was deprecated since FLTK 1.3.4 and will be -removed in FLTK 1.4.0 or a later version. +previous FLTK versions was deprecated since FLTK 1.3.4 and has been +removed in FLTK 1.4.0. - 3.1 Library Names --------------------- - -When you use the target_link_libraries command, CMake uses its own -internal names for libraries. The fltk library names are: - - fltk fltk_forms fltk_images fltk_gl - -and for the shared libraries (if built): - - fltk_SHARED fltk_forms_SHARED fltk_images_SHARED fltk_gl_SHARED - -The built-in libraries (if built): - - fltk_jpeg fltk_png fltk_z - - - 3.2 Using Fluid Files ------------------------- + 3.3 Building a Program Using Fluid Files +------------------------------------------- CMake has a command named fltk_wrap_ui which helps deal with fluid *.fl -files. Unfortunately it is broken in CMake 3.4.x. You can however use -add_custom_command to achieve the same result. +files. Unfortunately it is broken in CMake 3.4.x but it seems to work in +3.5 and later CMake versions. We recommend to use add_custom_command() +to achieve the same result in a more explicit and well-defined way. This is a more basic approach and should work for all CMake versions. Here is a sample CMakeLists.txt which compiles the CubeView example from a directory you've copied the test/Cube* files to. --- -cmake_minimum_required(VERSION 2.6.3) +cmake_minimum_required(VERSION 3.15) project(CubeView) # change this to your fltk build directory -set(FLTK_DIR /home/msurette/build/fltk-release/) +set(FLTK_DIR "/path/to/fltk" + CACHE FILEPATH "FLTK installation or build directory") -find_package(FLTK REQUIRED NO_MODULE) -include_directories(${FLTK_INCLUDE_DIRS}) +find_package(FLTK REQUIRED CONFIG) -#run fluid -c to generate CubeViewUI.cxx and CubeViewUI.h files +# run fluid -c to generate CubeViewUI.cxx and CubeViewUI.h files add_custom_command( - OUTPUT "CubeViewUI.cxx" "CubeViewUI.h" - COMMAND fluid -c ${CMAKE_CURRENT_SOURCE_DIR}/CubeViewUI.fl + OUTPUT "CubeViewUI.cxx" "CubeViewUI.h" + COMMAND fluid -c ${CMAKE_CURRENT_SOURCE_DIR}/CubeViewUI.fl ) -include_directories(${CMAKE_CURRENT_BINARY_DIR}) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +add_executable(CubeView WIN32 MACOSX_BUNDLE + CubeMain.cxx CubeView.cxx CubeViewUI.cxx) -add_executable(CubeView WIN32 CubeMain.cxx CubeView.cxx CubeViewUI.cxx) +target_include_directories (CubeView PRIVATE ${FLTK_INCLUDE_DIRS}) -target_link_libraries(CubeView fltk fltk_gl) +target_include_directories (CubeView PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +target_include_directories (CubeView PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) + +target_link_libraries (CubeView PRIVATE fltk fltk_gl) --- You can repeat the add_custom_command for each fluid file or if you @@ -544,8 +570,8 @@ FLTK_RUN_FLUID for an example of how to run it in a loop. The two lines - include_directories(${CMAKE_CURRENT_BINARY_DIR}) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + target_include_directories (CubeView PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + target_include_directories (CubeView PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) add the current build ("binary") and source directories as include directories. This is necessary for the compiler to find the local header files since the @@ -553,14 +579,55 @@ fluid-generated files (CubeViewUI.cxx and CubeViewUI.h) are created in the current build directory. - DOCUMENT HISTORY -================== + 3.4 Building a Program Using CMake's FetchContent Module +----------------------------------------------------------- -Dec 20 2010 - matt: merged and restructures +FLTK can be downloaded and built within a user project using CMake's +FetchContent module. A sample CMakeLists.txt file follows. + +You may need to adjust it to your configuration. + +--- +cmake_minimum_required(VERSION 3.15) +project(hello) + +include(FetchContent) + +set(FLTK_BUILD_TEST OFF CACHE BOOL "" FORCE) + +FetchContent_Declare(FLTK + GIT_REPOSITORY https://github.com/fltk/fltk + GIT_SHALLOW TRUE +) +FetchContent_MakeAvailable(FLTK) + +add_executable(hello WIN32 MACOSX_BUNDLE hello.cxx) + +target_include_directories(hello PRIVATE ${fltk_BINARY_DIR} ${fltk_SOURCE_DIR}) + +# link as required: fltk fltk_gl fltk_images fltk_png fltk_jpeg fltk_z +target_link_libraries(hello PRIVATE fltk) + +if(APPLE) + target_link_libraries(hello PRIVATE "-framework Cocoa") # needed for Darwin +endif() + +if(WIN32) + target_link_libraries(hello PRIVATE gdiplus) +endif() +--- + + + 4 Document History +--------------------- + +Dec 20 2010 - matt: merged and restructured May 15 2013 - erco: small formatting tweaks, added some examples Feb 23 2014 - msurette: updated to reflect changes to the CMake files Apr 07 2015 - AlbrechtS: update use example and more docs Jan 31 2016 - msurette: custom command instead of fltk_wrap_ui -Nov 01 2016 - AlbrechtS: remove deprecated FLTK_USE_FILE, add MinGW build -Jul 05 2017 - matt: added instructions for MacOS and Xcode +Nov 01 2016 - AlbrechtS: add MinGW build +Jul 05 2017 - matt: added instructions for macOS and Xcode Dec 29 2018 - AlbrechtS: add documentation option descriptions +Apr 29 2021 - AlbrechtS: document macOS "universal apps" build setup +Nov 01 2023 - AlbrechtS: improve build instructions for user programs diff --git a/documentation/src/fltk.man b/documentation/src/fltk.man index 8950712cd..9a702dc78 100644 --- a/documentation/src/fltk.man +++ b/documentation/src/fltk.man @@ -3,14 +3,16 @@ fltk \- the fast light tool kit .sp .SH SYNOPSIS -The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a -C++ graphical user interface toolkit for the X Window -System, MacOS(r), and Microsoft Windows(r) that supports OpenGL(r). +The Fast Light Tool Kit ("FLTK") is a cross-platform C++ GUI toolkit +for UNIX(r)/Linux(r) (X11 and Wayland), Microsoft(r) Windows(r), +and macOS(r). FLTK provides modern GUI functionality without +bloat and supports 3D graphics via OpenGL(r) and its built-in +GLUT emulation. It was originally developed by Mr. Bill Spitzak and is currently maintained by a small group of developers across the world with -a central repository in the US. +a central repository on GitHub. .LP -FLTK is provides under the terms of the GNU Library General Public License, +FLTK is provided under the terms of the GNU Library General Public License, with the following exceptions: .IP 1. Modifications to the FLTK configure script, config header @@ -21,7 +23,7 @@ The authors do request that such modifications be contributed to the FLTK project - send all contributions through the "Software Trouble Report" on the following page: .IP - http://www.fltk.org/str.php + https://www.fltk.org/bugs.php .IP 2. Widgets that are subclassed from FLTK widgets do not constitute a derivative work. @@ -29,8 +31,8 @@ constitute a derivative work. 3. Static linking of applications and widgets to the FLTK library does not constitute a derivative work and does not require the author to provide source code for the application or -widget, use the shared FLTK libraries, or link their -applications or widgets against a user-supplied version of FLTK. +widget, use the shared FLTK libraries, or link their applications +or widgets against a user-supplied version of FLTK. .IP If you link the application or widget to a modified version of FLTK, then the changes to FLTK must be provided under the terms @@ -46,12 +48,12 @@ following example statement can be included in user documentation to satisfy this requirement: .IP [program/widget] is based in part on the work of the FLTK -project (http://www.fltk.org). +project (https://www.fltk.org). .SH SEE ALSO fltk\-config(1), fluid(1) .br FLTK Programming Manual .br -FLTK Web Site, http://www.fltk.org/ +FLTK Web Site, https://www.fltk.org/ .SH AUTHORS Bill Spitzak and others. diff --git a/documentation/src/intro.dox b/documentation/src/intro.dox index f39a2baa3..b9af8d004 100644 --- a/documentation/src/intro.dox +++ b/documentation/src/intro.dox @@ -2,14 +2,13 @@ \page intro Introduction to FLTK -The Fast Light Tool Kit ("FLTK", pronounced -"fulltick") is a cross-platform C++ GUI toolkit for -UNIX®/Linux® (X11), Microsoft® Windows®, and -Apple® OS X®. FLTK provides modern GUI functionality without the +The Fast Light Tool Kit ("FLTK") is a cross-platform C++ GUI toolkit +for UNIX®/Linux® (X11), Microsoft® Windows®, and +Apple® macOS®. FLTK provides modern GUI functionality without bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation. It was originally developed by Mr. Bill Spitzak and is currently maintained by a small group of developers -across the world with a central repository in the US. +across the world with a central repository on GitHub. \section intro_history History of FLTK diff --git a/fltk.list.in b/fltk.list.in index b6b130504..1e157640e 100644 --- a/fltk.list.in +++ b/fltk.list.in @@ -21,12 +21,12 @@ %vendor FLTK Development Team %license COPYING %readme README -%version @FLTK_VERSION_MAJOR@.@FLTK_VERSION_MINOR@.@FLTK_VERSION_PATCH@ -%description The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a -%description cross-platform C++ GUI toolkit for UNIX(r)/Linux(r) (X11), -%description Microsoft(r) Windows(r), and MacOS(r) X. FLTK provides modern -%description GUI functionality without the bloat and supports 3D graphics via -%description OpenGL(r) and its built-in GLUT emulation. +%version @FLTK_VERSION@ +%description The Fast Light Tool Kit ("FLTK") is a cross-platform C++ GUI +%description toolkit for UNIX(r)/Linux(r) (X11), Microsoft(r) Windows(r), +%description and macOS(r). FLTK provides modern GUI functionality without +%description bloat and supports 3D graphics via OpenGL(r) and its built-in +%description GLUT emulation. $prefix=@prefix@ $exec_prefix=@exec_prefix@ diff --git a/fltk.spec.in b/fltk.spec.in index 14a33bbc7..01f28a6fe 100644 --- a/fltk.spec.in +++ b/fltk.spec.in @@ -14,7 +14,7 @@ # https://www.fltk.org/bugs.php # -%define version @FLTK_VERSION_MAJOR@.@FLTK_VERSION_MINOR@.@FLTK_VERSION_PATCH@ +%define version @FLTK_VERSION@ %define release 1 %define prefix /usr @@ -24,18 +24,18 @@ Version: %{version} Release: %{release} License: LGPL Group: System Environment/Libraries -Source: ftp://ftp.fltk.org/pub/fltk/%{version}/fltk-%{version}-source.tar.gz +Source: https://www.fltk.org/pub/fltk/%{version}/fltk-%{version}-source.tar.gz URL: https://www.fltk.org/ Packager: FLTK Developer # use BuildRoot so as not to disturb the version already installed BuildRoot: /var/tmp/fltk-%{PACKAGE_VERSION} %description -The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a -cross-platform C++ GUI toolkit for UNIX(r)/Linux(r) (X11), -Microsoft(r) Windows(r), and MacOS(r) X. FLTK provides modern -GUI functionality without the bloat and supports 3D graphics via -OpenGL(r) and its built-in GLUT emulation. +The Fast Light Tool Kit ("FLTK") is a cross-platform C++ GUI +toolkit for UNIX(r)/Linux(r) (X11), Microsoft(r) Windows(r), +and macOS(r). FLTK provides modern GUI functionality without +bloat and supports 3D graphics via OpenGL(r) and its built-in +GLUT emulation. %package devel Summary: FLTK Development Environment diff --git a/makesrcdist b/makesrcdist index 064459dfd..6056cf13a 100755 --- a/makesrcdist +++ b/makesrcdist @@ -58,14 +58,15 @@ DATE="`date +'%Y%m%d'`" fltk_version="`cat fltk_version.dat`" VS="`echo $fltk_version | cut -f 1-2 -d '.'`" +git_rev="`git rev-parse --short=10 HEAD`" +git_rev_full="`git rev-parse HEAD`" echo "Getting distribution..." if test $# = 0 -o "x$1" = "xsnapshot"; then echo Getting snapshot revision... - rev="`git rev-parse --short=8 HEAD`" - version="${VS}-${rev}" - fileversion="${VS}.x-${DATE}-$rev" + version="${VS}-${git_rev}" + fileversion="${VS}.x-${DATE}-${git_rev}" fileurl="$SNAPSHOT/fltk-$fileversion.tar.gz" else if test ! -e "documentation/html/"; then @@ -82,7 +83,6 @@ else echo " cd documentation; make dist" exit fi - rev="1" version=$1 fileversion=$1 fileurl="$DOWNLOAD/$version/fltk-$fileversion-source.tar.gz" @@ -94,10 +94,15 @@ else fi # Debug: +# echo "----------------------------------------------" +# echo "cmdline-arg1 = '$1'" # echo "fltk_version = $fltk_version" # echo "version = $version" # echo "fileversion = $fileversion" # echo "fileurl = $fileurl" +# echo "git_rev = $git_rev" +# echo "git_rev_full = $git_rev_full" +# echo "----------------------------------------------" echo Exporting $fltk_version to /tmp/fltk-$version/... rm -rf /tmp/fltk-$version @@ -113,14 +118,13 @@ fi echo Applying version number... cd /tmp/fltk-$version -sed -e '1,$s/@VERSION@/'$version'/' \ - -e '1,$s/@RELEASE@/'$rev'/' \ - -e '1,$s#^Source:.*#Source: '$fileurl'#' \ - fltk.spec +sed -e '1,$s/@FLTK_VERSION@/'$version'/' \ + < fltk.spec.in > fltk.spec echo Creating configure script... autoconf -f +# FLTK 1.3.x only: echo Creating config.guess and config.sub \(ignore any other errors\)... automake --add-missing --copy 2>/dev/null @@ -141,6 +145,11 @@ echo "Removing documentation..." rm -rf fltk-$version/documentation/html/ rm -f fltk-$version/documentation/fltk.pdf +echo Creating fltk_git_revision.dat in $PWD/fltk-$version/ ... +echo "$git_rev_full" > fltk-$version/fltk_git_revision.dat +cat $PWD/fltk-$version/fltk_git_revision.dat +echo "" + echo "Making UNIX (.tar.gz) distribution..." $TAR czf fltk-$fileversion-source.tar.gz fltk-$version