| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- README.OSX.txt - 2010-10-23 - Building FLTK under Apple OS X
- ------------------------------------------------------------
- CONTENTS
- ==========
- 1 INTRODUCTION
- 2 HOW TO BUILD FLTK USING GCC
- 2.1 Prerequisites
- 2.2 Downloading and Unpacking
- 2.3 Configuring FLTK
- 2.4 Building FLTK
- 2.5 Testing FLTK
- 2.6 Installing FLTK
- 2.7 Creating new Projects
- 3 HOW TO BUILD FLTK USING XCODE3
- 3.1 Prerequisites
- 3.2 Downloading and Unpacking
- 3.3 Configuring FLTK
- 3.4 Building FLTK
- 3.5 Testing FLTK
- 3.6 Uninstalling previous versions of FLTK
- 3.7 Installing FLTK
- 3.8 Installing Little Helpers
- 3.9 Creating new Projects
- 4 HOW TO BUILD FLTK USING XCODE4
- 4.1 Prerequisites
- 4.2 Downloading and Unpacking
- 4.3 Configuring FLTK
- 4.4 Building FLTK
- 4.5 Testing FLTK
- 4.6 Uninstalling previous versions of FLTK
- 4.7 Installing FLTK
- 5 MAKE AN APPLICATION LAUNCHABLE BY DROPPING FILES ON ITS ICON
- 6 DOCUMENT HISTORY
- 1 INTRODUCTION
- =================
- FLTK supports all Mac OS X versions above 10.3 (Panther). See below for how to
- build FLTK applications that can run on all (old or recent) Mac OS X versions.
- FLTK currently supports the following development environments on the Apple OS X
- platform:
- - gcc command line tools
- - Xcode 3.x and higher
-
- CAUTION: gcc command line built libraries and Xcode created Frameworks should
- not be mixed!
- 2 HOW TO BUILD FLTK USING GCC
- ================================
- 2.1 Prerequisites
- --------------------
- In order to build FLTK from the command line, you need to install the Xcode
- developer environment from the Apple Inc. web site. The developer environment
- can be downloaded from the Mac Dev Center for free:
- http://developer.apple.com/technologies/xcode.html
-
- After downloading and installing, you need to launch the Terminal. Terminal.app
- is located in the "Utilities" folder inside the "Applications" folder. I like to
- keep the Terminal in the Dock.
- 2.2 Downloading and Unpacking
- --------------------------------
- Download FLTK from here:
- http://www.fltk.org/software.php
- If you are familiar with "subversion" and like to stay current with your
- version, you will find the subversion access parameters at the bottom of that
- page. Unpack FLTK into a convenient location. I like to have everything in my
- dev directory:
- cd
- mkdir dev
- cd dev
- mv ~/Downloads/fltk-1.3.xxxx.tar.gz .
- tar xvfz fltk-1.3.xxxx.tar.gz
- cd fltk-1.3.xxxx
-
- 2.3 Configuring FLTK
- -----------------------
- If you got FLTK via subversion then you need one extra step. Otherwise skip
- over this part. Stay in your FLTK source-code directory and type the
- following:
- NOCONFIGURE=1 ./autogen.sh
- Now configure your FLTK installation:
- ./configure
-
- ADVANCED: type "./configure --help" to get a complete list of optional
- configurations parameters. These should be pretty self-explanatory. Some
- more details can be found in README.
- To create Universal Binaries, start "configure" with these flags:
- ./configure --with-archflags="-arch i386 -arch ppc -arch x86_64"
-
- To create applications that can run under Mac OS X 10.4 and above, use these flags:
- ./configure CXXFLAGS="-mmacosx-version-min=10.4" LDFLAGS="-mmacosx-version-min=10.4"
- :END_ADVANCED
- The configuration script will check your machine for the required resources
- which should all have been part of your Xcode installation. Review the
- Configuration Summary, maybe take some notes.
- 2.4 Building FLTK
- --------------------
- Now this is easy. Stay in your FLTK source-code directory and type:
- make
- The entire FLTK toolkit including many test programs will be built for you. No
- warnings should appear, but "ranlib" may complain about a few modules having no
- symbols. This is normal and can safely be ignored.
- 2.5 Testing FLTK
- -------------------
- After a successful build, you can test FLTK's capabilities:
- test/demo
- 2.6 Installing FLTK
- ----------------------
- If you did not change any of the configuration settings, FLTK will be installed
- in "/usr/local/include" and "/usr/local/lib" by typing
- sudo make install
-
- It is possible to install FLTK without superuser privileges by changing the
- installation path to a location within the user account by adding the
- "--prefix=PREFIX" parameter to the "./configure" command.
- 2.7 Creating new Projects
- ----------------------------
- FLTK provides a neat script named "fltk-config" that can provide all the flags
- needed to build FLTK applications using the same flags that were used to build
- the library itself. Architecture flags (e.g., -arch i386) used to build the
- library, though, are not provided by the fltk-config script. This allows to
- build universal libraries and to produce applications of any architecture
- from them. Running "fltk-config" without arguments will print a list
- of options. The easiest call to compile an FLTK application from a single source
- file is:
- fltk-config --compile myProgram.cxx
- "fltk-config" and "fluid" will be installed in "/usr/local/bin/" by default. I
- recommend that you add it to the command search path.
- 3 HOW TO BUILD FLTK USING XCODE3
- ===================================
- 3.1 Prerequisites
- --------------------
- In order to build FLTK from within Xcode, you need to install the Xcode
- developer environment from the Apple Inc. web site. The developer environment
- can be downloaded from the Mac Dev Center for free:
- http://developer.apple.com/technologies/xcode.html
-
- 3.2 Downloading and Unpacking
- --------------------------------
- Download FLTK from here:
- http://www.fltk.org/software.php
- If you are familiar with "subversion" and like to stay current with your
- version, you will find the subversion access parameters at the bottom of that
- page. You can use the SCM system that is built into Xcode.
- Unpack FLTK by double-clicking it and copy the new folder into a convenient
- location. I have set up a "dev" folder in my home folder for all my projects.
- 3.3 Configuring FLTK
- -----------------------
- Launch Xcode. Open the project file in
- .../fltk-1.3.xxxx/ide/Xcode3/FLTK.xcodeproj
- Use the "Project" pulldown menu to change "Active Build Configuration" to
- "Release". Change the "Active Architecture" as desired.
-
- 3.4 Building FLTK
- --------------------
- Use the "Project" pulldown menu to set the "Active Target" to "Demo".
- Select "Build" from the "Build" menu to create all libraries and test applications.
- By default, the Xcode3 project builds applications that run under Mac OS X 10.5 and above.
- To build applications that run under older Mac OS versions, select "Edit Project Settings"
- of the Project menu, then select the Build panel, and modify the "Mac OS X Deployment Target"
- item.
- All frameworks and apps will be located in "./ide/Xcode3/build/Release/".
- 3.5 Testing FLTK
- -------------------
- Select "Build and Run" from the "Build" menu to run the Demo program. Use "Demo"
- to explore all test programs.
- 3.6 Uninstalling previous versions of FLTK
- ---------------------------------------------
- Remove FLTK frameworks:
- sudo rm -r /Library/Frameworks/fltk*.framework
-
- Remove Fluid and possibly other utilities:
- sudo rm -r /Developer/Applications/Utilities/FLTK/
-
- 3.7 Installing FLTK
- ----------------------
- When distributing FLTK applications, the FLTK frameworks should be made part of
- the application package. For development however, it is very convenient to have
- the Release-mode Frameworks in a standard location.
- For Xcode project template use, all FLTK frameworks should be copied from
- "./ide/Xcode3/build/Release/" to "/Library/Frameworks/". The FLTK header files
- for all FLTK frameworks will then be at "/Library/Frameworks/fltk.framework/
- Headers/". Add this path to the header search path of your projects.
- sudo rm -f -r /Library/Frameworks/fltk*
- sudo cp -R ide/Xcode3/build/Release/fltk*.framework /Library/Frameworks/
- Many FLTK applications will use Fluid, the FLTK User Interface builder, to
- generate C++ source code from .fl resource files. Add Fluid to the developer
- tools:
- sudo mkdir /Developer/Applications/Utilities/FLTK/
- sudo rm -f -r /Developer/Applications/Utilities/FLTK/Fluid.app
- sudo cp -R ide/Xcode3/build/Release/Fluid.app /Developer/Applications/Utilities/FLTK/
- 3.8 Installing Little Helpers
- --------------------------------
- - Project Templates:
- Project Templates are the quickest way to create a new FLTK application from
- within Xcode. The included project builds an FLTK based Cocoa application
- written in C++ with support for the Fluid UI designer, image reading, and
- OpenGL. Unused FLTK sub-Frameworks can simply be removed from the project.
- The template assumes that Release versions of the FLTK frameworks are installed
- in /Library/Frameworks as described above.
- First, we need to create the Template folder:
- sudo mkdir -p /Library/Application\ Support/Developer/Shared/Xcode/Project\ Templates/
- Next, we copy the project template over:
- sudo cp -r ide/Xcode3/Project\ Templates/* /Library/Application\ Support/Developer/Shared/Xcode/Project\ Templates/
- After restarting Xcode, the dialog for "File > New Project..." will offer an
- FLTK 1.3 user template which is ready to compile.
- - Fluid file handling
- This section assumes that a Release version of Fluid is installed in
- "/Developer/Applications/Utilities/FLTK/" as described above. It will install
- a new file type which opens Fluid as an editor for files ending in ".fl".
- First, we need to create the spec folder:
- sudo mkdir -p /Library/Application\ Support/Developer/Shared/Xcode/Specifications/
- Next, we copy the Fluid specification over:
- sudo cp ide/Xcode3/fluid.pbfilespec /Library/Application\ Support/Developer/Shared/Xcode/Specifications/
- Open Xcode preferences and select the File Types tab. Find the
- "sourcecode.fluid" entry in "file > text > sourcecode" and set the external
- editor to Fluid. When adding ".fl" files, set the File Type in the Info dialog
- to "sourcecode.fluid" and Xcode will edit your file in Fluid when
- double-clicking.
- - More
- TODO: Language Definition
- TODO: Build Rules
- 3.9 Creating new Projects
- ----------------------------
- If the little helpers above were installed, the menu "File > New Project..."
- will pop up a dialog that offers a User Template named Fluid. Select it and
- follow the instructions.
- 4 HOW TO BUILD FLTK USING XCODE4
- ===================================
- 4.1 Prerequisites
- --------------------
- In order to build FLTK from within Xcode 4, you need to install the Xcode
- developer environment via the Apple App Store that comes with Lion and up.
- If you also want the command line version of gcc, you can use the
- Download section in the Preferences dialog.
-
- 4.2 Downloading and Unpacking
- --------------------------------
- Download FLTK from here:
- http://www.fltk.org/software.php
- If you are familiar with "subversion" and like to stay current with your
- version, you will find the subversion access parameters at the bottom of that
- page. You can use the SCM system that is built into Xcode.
- Unpack FLTK by double-clicking it and copy the new folder into a convenient
- location. I have set up a "dev" folder in my home folder for all my projects.
- 4.3 Configuring FLTK
- -----------------------
- Launch Xcode. Open the project file in
- .../fltk-1.3.xxxx/ide/Xcode4/FLTK.xcodeproj
- There is nothing else to configure.
-
- 4.4 Building FLTK
- --------------------
- Use the "Scheme" pulldown menu to change the active target to "Demo" and
- "My Mac 32-bit" or "My Mac 64-bit". Select "Build for" -> "Running"Run" from
- the "Product" menu to create all libraries and test applications.
- By default, the Xcode4 project builds applications that need the current Mac OS X version.
- To build applications that also run under older Mac OS versions, modify the "OS X Deployment
- Target" item of the FLTK project build settings.
- All frameworks and apps will be located in a private directory. Use
- "Window"->"Organizer" to find the full path.
- 4.5 Testing FLTK
- -------------------
- Select "Run" from the "Product" menu to run the Demo program. Use "Demo"
- to explore all test programs.
- 4.6 Uninstalling previous versions of FLTK
- ---------------------------------------------
- Remove FLTK frameworks:
- sudo rm -r /Library/Frameworks/fltk*.framework
-
- Remove Fluid and possibly other utilities:
- sudo rm -r /Applications/FLTK/
-
- 4.7 Installing FLTK
- ----------------------
- When distributing FLTK applications, the FLTK frameworks should be made part of
- the application package. For development however, it is very convenient to have
- the Release-mode Frameworks in a standard location.
- For Xcode project template use, all FLTK frameworks should ibe built using
- "Build for Archiving" and then copied from
- "./(Organizer->Derived Data Path)/Release/" to "/Library/Frameworks/". The FLTK header files
- for all FLTK frameworks will then be at "/Library/Frameworks/fltk.framework/
- Headers/". Add this path to the header search path of your projects.
- sudo rm -f -r /Library/Frameworks/fltk*
- sudo cp -R (Organizer->Derived Data Path)/Release/fltk*.framework /Library/Frameworks/
- Many FLTK applications will use Fluid, the FLTK User Interface builder, to
- generate C++ source code from .fl resource files. Add Fluid to the developer
- tools:
- sudo mkdir /Applications/FLTK/
- sudo rm -f -r /Applications/FLTK/Fluid.app
- sudo cp -R (Organizer->Derived Data Path)/Release/Fluid.app /Applications/FLTK/
- (TODO: 4.8 Installing Little Helpers)
- (TODO: 4.9 Creating new Projects)
- 5 MAKE AN APPLICATION LAUNCHABLE BY DROPPING FILES ON ITS ICON
- =================================================================
- - Prepare an Info.plist file for your application derived from file
- ide/Xcode4/plists/editor-Info.plist which allows any file to be dropped
- on the application icon.
- You can edit this file in Xcode and change
- Document types/Item 0/CFBundleTypeExtensions/Item 0
- from the current "*" to the desired file extension. Use several items to declare
- several extensions.
- - Call fl_open_callback() at the beginning of your main() function that
- sets what function will be called when a file is dropped on the application icon.
- - In Xcode, set the "Info.plist File" build setting of your target application
- to the Info.plist file you have prepared.
- - Rebuild your application.
- 6 DOCUMENT HISTORY
- =====================
- Oct 29 2010 - matt: removed warnings
- Oct 24 2010 - matt: restructured entire document and verified instructions
- Dec 19 2010 - Manolo: corrected typos
- Dec 29 2010 - Manolo: removed reference to AudioToolbox.framework that's no longer needed
- Feb 24 2011 - Manolo: architecture flags are not propagated to the fltk-config script.
- Apr 17 2012 - matt: added Xcode4 documentation
- Nov 13 2012 - Manolo: added "MAKE AN APPLICATION LAUNCHABLE BY DROPPING FILES ON ITS ICON"
- Apr 28 2014 - Manolo: how to build programs that run on various Mac OS X versions
|