251 lines
9.6 KiB
Plaintext
251 lines
9.6 KiB
Plaintext
Grafx2 compilation and installation
|
|
===================================
|
|
|
|
=== Requirements ===
|
|
|
|
* gcc C compiler (other compilers may work, but are not officially supported)
|
|
* GNU make (other similar "make" tools may work, but are not supported)
|
|
* SDL library v1.2
|
|
* SDL_image library
|
|
* libpng (not on MacOSX)
|
|
* FreeType library (optional, for truetype fonts)
|
|
* SDL_ttf library (optional, for truetype fonts)
|
|
* Lua library v5.1 (optional, for Lua scripting)
|
|
|
|
Extra requirements for Windows:
|
|
* a POSIX environment: MSYS is fine, maybe Cygwin would work as well.
|
|
* use Mingw C compiler instead of gcc
|
|
|
|
Extra requirements for UNIX/X11 (Linux, FreeBSD, ...):
|
|
* pkg-config (optional, for Lua scripting)
|
|
* X11 headers (optional, for truetype fonts)
|
|
|
|
On Debian-based distributions you should be able to get all these files by
|
|
simply running the following command from a terminal :
|
|
sudo aptitude install gcc make libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libfreetype6-dev liblua5.1-0-dev lua5.1
|
|
|
|
=== Instructions ===
|
|
|
|
Open a shell/Terminal, enter the directory where you have the project tree, and
|
|
type:
|
|
cd src
|
|
make
|
|
If all goes well, it should build grafx2 (the main program) in the "bin"
|
|
directory. Voilà.
|
|
|
|
If you don't have FreeType and SDL_ttf, type make NOTTF=1 instead. It will
|
|
build a version without TrueType support : the Text tool will be limited to
|
|
bitmap fonts, proportional fonts with .ttf extension won't be available.
|
|
|
|
If you don't have lua available, type `make NOLUA=1`. You will not be able to
|
|
use lua scripts to generate and alter brush and pictures.
|
|
|
|
These options can be combined, for example for a build without ttf nor lua type
|
|
make NOTTF=1 NOLUA=1
|
|
|
|
|
|
=== Build variants ===
|
|
|
|
The default compilation is optimized ( -O ), with debugging symbols for GDB.
|
|
Compile with OPTIM=0 to disable optimizations, if you have some real debugging
|
|
to do.
|
|
Compile with OPTIM=3 to use maximum optimizations.
|
|
Type "make release" if you don't want the debugging symbols.
|
|
|
|
Compile with USE_JOYSTICK=1 to enable joystick input : Only useful for
|
|
developers, to check the input code for platforms that don't have a mouse.
|
|
|
|
Compile with NOLAYERS=1 to make a version of Grafx2 that can't display
|
|
several layers at a time: You will still be able to edit layered images,
|
|
but you will only see one layer at a time. This option is designed for slow
|
|
platforms, as it makes the program faster.
|
|
|
|
=== Other compilation targets ===
|
|
make clean
|
|
Erases all generated files (intermediate objects, and executable)
|
|
|
|
make depend
|
|
Re-compute the dependencies (makefile.dep).
|
|
|
|
Other compilation targets (make version, make ziprelease) require Subversion
|
|
and are only useful to contributors to the svn repository of Grafx2.
|
|
|
|
=== System specifics ===
|
|
|
|
== Unix/Linux ==
|
|
|
|
sudo make install
|
|
This copies the executable and data files in your system, in the /usr/local/bin
|
|
and /usr/local/share directories. You then no longer need the compilation
|
|
directory.
|
|
|
|
sudo make uninstall
|
|
Removes the copied files from your system, keeps your configuration.
|
|
|
|
For both options, you can specify prefix=something to choose the target
|
|
directory root: For example prefix=/usr or prefix=./test-install
|
|
|
|
== gp2x ==
|
|
|
|
The gp2x build is very similar to the Linux one. TTF is always disabled because
|
|
there is no X11 support on the gp2x.
|
|
To compile a gp2x executable, type
|
|
make GP2XCROSS=1
|
|
This will only work on an UNIXsystem (Linux or FreeBSD).
|
|
|
|
== Windows ==
|
|
|
|
It is also possible to compile from linux, with this command :
|
|
make WIN32CROSS=1
|
|
You will need the mingw cross-compiler, and all the librairies listed above.
|
|
|
|
Here is a list of the resources used to build the Windows version:
|
|
|
|
4DOS
|
|
with an alias make=mingw32-make
|
|
|
|
MSYS
|
|
installed in C:\MSYS
|
|
|
|
Mingw
|
|
installed in C:\MSYS\mingw
|
|
|
|
SDL:
|
|
SDL-devel-1.2.13-mingw32.tar.gz
|
|
Uncompress in temporary directory
|
|
make
|
|
make install (no effect?)
|
|
Headers are in /usr/mingw/include/SDL, copy them to /usr/include/SDL
|
|
|
|
Zlib:
|
|
http://gnuwin32.sourceforge.net/downlinks/zlib.php
|
|
zlib-1.2.3.exe
|
|
Install in c:\msys\mingw
|
|
|
|
Libpng
|
|
Requires: Zlib
|
|
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/l/li/libpng/
|
|
libpng-1.4.2.tar.gz (Before June 2010, we were using libpng-1.0.23.tar.gz)
|
|
Uncompress in temporary directory
|
|
./configure
|
|
make
|
|
make install (long)
|
|
Files created in /usr/local/include and /usr/local/lib ....
|
|
|
|
libjpeg (optional - improves SDL_image with JPEG reading)
|
|
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/l/project/li/libjpeg/libjpeg/
|
|
jpegsr6.zip
|
|
Uncompress in temporary directory
|
|
./configure --enable-shared
|
|
make
|
|
(make install doesn't work. Copy jpeglib.h, jmorecfg.h, jconfig.h in include, and libjpeg.a in lib)
|
|
|
|
libtiff (optional - improves SDL_image with TIFF reading)
|
|
ftp://ftp.sgi.com/graphics/tiff/
|
|
tiff-v3.4-tar.gz
|
|
Uncompress in temporary directory
|
|
./configure i686-pc-mingw32
|
|
make
|
|
Don't use 'make install', copy tiff.h libtiff.a manually instead.
|
|
|
|
SDL_image:
|
|
Requires: Libpng
|
|
Requires optionally: libtiff
|
|
Requires optionally: libjpeg
|
|
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/l/li/libsdl/
|
|
SDL_image-1.2.8.zip
|
|
Uncompress in temporary directory
|
|
./configure
|
|
Check in the messages that png worked
|
|
Optionally check if jpeg worked too
|
|
Optionally check if tiff worked too
|
|
make
|
|
make install prefix=/usr/mingw
|
|
|
|
FreeType:
|
|
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/mi/mingw-cross/
|
|
mingw-freetype-2.3.7-2
|
|
Uncompress in c:/mwsys/mingw
|
|
|
|
SDL_ttf:
|
|
No mingw package
|
|
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/l/li/libsdl/
|
|
SDL_ttf-2.0.9-win32.zip for DLLs: libfreetype-6.dll, SDL_ttf.dll, zlib1.dll
|
|
SDL_ttf-2.0.9.tar.gz
|
|
|
|
Lua:
|
|
(optional)
|
|
http://www.lua.org/ftp/lua-5.1.4.tar.gz
|
|
Uncompress in temporary directory
|
|
Use sh shell
|
|
make mingw
|
|
(make install doesn't work, even with prefix)
|
|
Copy luaconf.h, lualib.h, lua.h, lauxlib.h to c:\msys\mingw\include
|
|
Copy liblua.a to c:\msys\mingw\lib
|
|
Copy lua51.dll to c:\msys\mingw\bin
|
|
|
|
== Atari TOS machines ==
|
|
The Atari build is very similar to the Linux one. The build might work on native machine with gcc 4.3> compiler,
|
|
but it wasn't tested. You can also build binary for Coldfire based machines(e.g. Firebee) by
|
|
replacing '-m68020-60' in makefile to '-mcpu=5475'.
|
|
|
|
Preferable way is to build GRAFX2 with use of cross compiler, you can get one from Vincent Riviere site:
|
|
(URL: http://vincent.riviere.free.fr/soft/m68k-atari-mint). There are versions for win32 (Cygwin) and
|
|
debian packages for latest Ubuntu (32/64bit).
|
|
|
|
Before compilation you have to build all the needed libraries mentioned in requirements.
|
|
|
|
To compile a Atari TOS executable, type in
|
|
make ATARICROSS=1
|
|
You can also add other options like NOTTF,NOLUA,NOLAYERS etc. to enable/disable program features..
|
|
|
|
If you don't know how build libraries here's some hints. Please note that prefix path in examples below is valid only under Linux,
|
|
in case of Cygwin the path will be '/opt/m68k-atari-mint'. There will be no prefix when building on native machine.
|
|
You have to omit 'sudo' under Cygwin and native build. Stick to this order and you will be fine ;> ...
|
|
The versions of libraries were tested, you can also try newer versions. As I mentioned earlier, replace '-m68020-60' with '-mcpu=5475'
|
|
if you want to target Coldfire machines.
|
|
|
|
libpng [optional](for png reading in SDL_image):
|
|
------------------------------------------------
|
|
note: you will need libzip too
|
|
libpng 1.2.44
|
|
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"
|
|
sudo make install
|
|
or
|
|
libpng 1.4.44
|
|
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer -DPNG_NO_SETJMP"
|
|
sudo make install
|
|
|
|
libjpeg, libtiff [optional] (for jpeg/tiff support in SDL_image)
|
|
----------------------------------------------------------------
|
|
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"
|
|
sudo make install
|
|
|
|
freetype 2.4.4 [optional] (for TTF fonts support, required by SDL_ttf)
|
|
----------------------------------------------------------------------
|
|
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"
|
|
sudo make install
|
|
|
|
lua 5.0.4 [optional] (for LUA scripting support)
|
|
------------------------------------------------
|
|
Here you have to customize makefiles, add prefixes, platform has to be set as generic.
|
|
|
|
SDL 1.2 [mandatory]
|
|
--------------------
|
|
note: best is to grab it directly from Mercurial repository
|
|
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint --disable-video-opengl --disable-shared --enable-static --disable-threads CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"
|
|
sudo make install
|
|
|
|
SDL_ttf [optional] (for ttf fonts support, depends on SDL and freetype)
|
|
-------------------------------------------
|
|
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint --disable-shared --enable-static --with-sdl-prefix=/usr/m68k-atari-mint --with-freetype-prefix=/usr/m68k-atari-mint CFLAGS=" -m68020-60 -O2 -fomit-frame-pointer"
|
|
sudo make install
|
|
|
|
SDL_image 1.2.10 [mandatory]
|
|
----------------------------
|
|
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint --disable-shared --enable-static --with-sdl-prefix=/usr/m68k-atari-mint CFLAGS="-DHAVE_OPENGL=0 -m68020-60 -O2 -fomit-frame-pointer"
|
|
sudo make install
|
|
|
|
And that's it! :)
|
|
|