From: <slf...@us...> - 2003-05-14 06:32:29
|
Update of /cvsroot/jungerl/jungerl/lib/gd1_drv In directory sc8-pr-cvs1:/tmp/cvs-serv5585/lib/gd1_drv Added Files: GDConfig.mk.sample LICENSE Makefile README Log Message: Initial import of the libgd driver, gd1_drv, including autoconf changes. --- NEW FILE: GDConfig.mk.sample --- # # The autoconf magic required to automatically find your system's # header files and shared libraries for libgd, libpng, libjpeg, and # libXpm are too complex to bother with. Instead, you must configure # them manually. The process goes like this: # # 1. Create a file named CVSROOT/jungerl/config/GDConfig.mk # Feel free to copy this file file as a template to make your # life easier: copy it to ../../config/GDConfig.mk. # # 2. Edit the GDConfig.mk file to define the "make" variables that # the gd1_drv Makefiles are expecting: # LIBGD_CPPFLAGS, LIBGD_LDFLAGS, LIBPNG_CPPFLAGS, LIBPNG_LDFLAGS, # LIBJPEG_CPPFLAGS, LIBJPEG_LDFLAGS, LIBXPM_CPPFLAGS, LIBXPM_LDFLAGS # # 3. Re-run "configure" using the following commands: # % cd CVSROOT/jungerl/config # % ./configure # # 4. Run "make" (or whatever your GNU Make binary is called) at the # top level: # % cd CVSROOT/jungerl # % make # NOTE: For the {LibName}_LDFLAGS variable, you can use # "-L/path/to/dir -lname". Use "/path/to/libname.so" if the linker # is stubborn. Solaris may require you to use "-R/path/to/dir" if # the shared library is installed in a non-standard directory. # Flags for libgd version 1 headers & shared library LIBGD_CPPFLAGS = -I/usr/local/include/gd1 LIBGD_LDFLAGS = -L/usr/local/lib -lgd1 # Flags for libpng headers & shared library LIBPNG_CPPFLAGS = -I/usr/local/include/libpng LIBPNG_LDFLAGS = -L/usr/local/lib -lpng # Flags for libjpeg headers & shared library LIBJPEG_CPPFLAGS = -I/usr/local/include LIBJPEG_LDFLAGS = -L/usr/local/lib -ljpeg # Flags for libXpm headers & shared library LIBXPM_CPPFLAGS = -I/usr/X11R6/include LIBXPM_LDFLAGS = -L/usr/X11R6/lib -lXpm -lX11 --- NEW FILE: LICENSE --- Copyright (c) 2003, Scott Lystig Fritchie, <slf...@sn...> All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Mr. Fritchie nor the names of any other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --- NEW FILE: Makefile --- include ../../support/subdir.mk --- NEW FILE: README --- gd1_drv ======= This driver is for GD, a library for dynamic creation of PNG and JPEG images: line drawing, polygons, text, and lots more. See http://www.boutell.com/gd/ for source distributions for GD, which is a prerequisite for attempting to build this driver. Please follow the instructions later in this file to build the libgd.so shared library. The only functions in the GD API that are not supported are: gdImageCreateFromPngSource(), gdImageDashedLine(), gdImageString16() and gdImageStringUp16(), and True-Type font functions. Why the True-Type font functions? 1. I don't have the fonts installed on my machine, 2. EDTK cannot currently pass floating-point values. Once you've compiled and installed libgd.so and the GD header files (gd.h, gd_io.h, ...), you'll *must* follow the instructions found in the file GDConfig.mk.sample. Once everything is compiled cleanly, run the regression test: % cd CVSROOT/jungerl/lib/gd1_drv/test % make test You should see the message "All regression tests PASSED." If you have problems compiling or using this driver, please email me at slfritchie at snookles dot com. Creating a shared library version of libgd ========================================== You will need to compile & install the GD library (version 1.8.4, please!). Unfortunately, the build scheme used by GD 1.8.4 does not create a shared library. So, you'll have to resort to some brutal hacks to do so. Fortunately, it's pretty easy to do. 0. Get the source distribution for libgd version 1.8.4. Unpack it someplace. 1. Apply the patch below to the top-level "Makefile". This should work if you're using GCC for your compiler. If not, you may need to do whatever equivalent things for your compiler & linker. You may need to use "-fpic" instead of "-fPIC", for example. NOTE: The patch adds "-ljpeg" to the list of libraries added to the libgd.so shared library. If you do not include libjpeg, you will probably have problems with unresolvable symbols later on. 2. Follow the instructions in "index.html". See the "How do I build gd?" link near the top of that file to jump to the compilation instructions. You will want to build a version that has support for libpng and libjpeg. This driver does not implement GD's TrueType font functions, so don't bother trying to compile for it. Here's the patch for "Makefile". Change directory to the top of the GD source distribution, then run "patch < /path/to/this/README". --- gd-1.8.4/Makefile Thu Feb 22 11:03:43 2001 +++ ./Makefile Thu Oct 17 02:20:13 2002 @@ -7,12 +7,12 @@ #If the ar command fails on your system, consult the ar manpage #for your system. -AR=ar +AR="do not use AR variable" #If you don't have FreeType, libjpeg and/or Xpm installed, including the #header files, uncomment this (default). You really must install #libpng and zlib to get anywhere if you wish to create PNG images. -CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG +CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG -fPIC #If you do have FreeType, libjpeg and/or Xpm fully installed, uncomment a #variation of this and comment out the line above. See also LIBS below. @@ -30,7 +30,7 @@ #Some systems are very picky about link order. They don't all agree #on the right order, either. -LIBS=-lgd -lpng -lz -lm +LIBS=-lgd -lpng -lz -lm -ljpeg #If you do have FreeType, JPEG and/or Xpm fully installed, uncomment a #variation of this and comment out the line above. Note that @@ -85,7 +91,7 @@ all: libgd.a $(PROGRAMS) install: libgd.a $(BIN_PROGRAMS) - sh ./install-item 644 libgd.a $(INSTALL_LIB)/libgd.a + sh ./install-item 755 libgd.so $(INSTALL_LIB)/libgd.so sh ./install-item 755 pngtogd $(INSTALL_BIN)/pngtogd sh ./install-item 755 pngtogd2 $(INSTALL_BIN)/pngtogd2 sh ./install-item 755 gdtopng $(INSTALL_BIN)/gdtopng @@ -144,7 +150,7 @@ gd_wbmp.o gdhelpers.o gd.h gdfontt.h gdfonts.h gdfontmb.h gdfontl.h \ gdfontg.h gdhelpers.h rm -f libgd.a - $(AR) rc libgd.a gd.o gd_gd.o gd_gd2.o gd_io.o gd_io_dp.o \ + gcc -shared -o libgd.so gd.o gd_gd.o gd_gd2.o gd_io.o gd_io_dp.o \ gd_io_file.o gd_ss.o gd_io_ss.o gd_png.o gd_jpeg.o gdxpm.o \ gdfontt.o gdfonts.o gdfontmb.o gdfontl.o gdfontg.o \ gdtables.o gdft.o gdttf.o gdcache.o gdkanji.o wbmp.o \ |