Upgrade to 2.0.1 (gd2 was repocopied from gd). The name of the

installed library is still libgd, which is on purpose. It looks
like very little needs to be done after all to make current gd
users switch, so gd2 will, hopefully, quickly become gd again.

XPM will be used by default now, unless WITHOUT_XPM is declared.
When XPM can be built without installing X11, this is seems
sensible.
This commit is contained in:
Mikhail Teterin 2001-10-14 20:23:23 +00:00
parent bae984c218
commit d52a7a070a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=48767
10 changed files with 79 additions and 316 deletions

View file

@ -6,8 +6,7 @@
#
PORTNAME= gd
PORTVERSION= 1.8.4
PORTREVISION= 3
PORTVERSION= 2.0.1
CATEGORIES+= graphics
MASTER_SITES= http://www.boutell.com/gd/http/ \
ftp://ftp.boutell.com/pub/boutell/gd/ \
@ -22,26 +21,29 @@ MAINTAINER?= ports@FreeBSD.org
.if !exists(/usr/bin/bzip2)
BUILD_DEPENDS+= bzip2:${PORTSDIR}/archivers/bzip2
.endif
LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \
LIB_DEPENDS= png:${PORTSDIR}/graphics/png \
jpeg.9:${PORTSDIR}/graphics/jpeg \
freetype:${PORTSDIR}/print/freetype2
USE_FREETYPE2= yes
.if defined(WITH_X11)
USE_XLIB= yes
.ifndef WITHOUT_XPM
# Temporary hack, until X-less XPM building is added to USE_XPM:
.ifndef WITHOUT_X11
USE_XPM= yes
.else
LIB_DEPENDS+= xpm:${PORTSDIR}/graphics/xpm
.endif
.else
MAKE_ARGS+= -DWITHOUT_XPM
.endif
INSTALLS_SHLIB= yes
MAKEFILE= ${FILESDIR}/Makefile.bsd
MAKE_ARGS+= -j2
.for v in WRKSRC INSTALL_PROGRAM INSTALL_DATA INSTALL_SCRIPT
MAKE_ARGS+= $v="${$v}"
.endfor
post-extract:
bzip2 -d < ${_DISTDIR}/gd_gif_in.c.bz2 > ${WRKSRC}/gd_gif_in.c
pre-everything:
.if !defined(WITH_X11)
@${ECHO_MSG} "If you want to compile in X support use "
@${ECHO_MSG} "'make -DWITH_X11' instead"
.endif
.include <bsd.port.mk>

View file

@ -1,2 +1,2 @@
MD5 (gd-1.8.4.tar.gz) = 2aef76e79f206f9798233f025f5dd28d
MD5 (gd-2.0.1.tar.gz) = 43af994a97f3300a1165ca4888176ece
MD5 (gd_gif_in.c.bz2) = 54132aea09471bb997672436dd9a1a96

View file

@ -0,0 +1,49 @@
PROGS!= make -V BIN_PROGRAMS -f ${WRKSRC}/Makefile
TESTS!= make -V TEST_PROGRAMS -f ${WRKSRC}/Makefile
OBJS!= make -V LIBOBJS -f ${WRKSRC}/Makefile
OBJS+= gd_gif_in.o
LIB=gd
SHLIB_MAJOR=3
SHLIB_MINOR=0
INCS= gd.h gd_io.h gdcache.h gdfontg.h gdfontl.h gdfontmb.h \
gdfonts.h gdfontt.h
SHLIB_NAME!= make -V SHLIB_NAME LIB=${LIB} \
SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR} -f bsd.lib.mk
CFLAGS+=-I${.CURDIR} -I${LOCALBASE}/include/freetype2/ \
-I${LOCALBASE}/include/freetype2/freetype -I${LOCALBASE}/include \
-DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE
LDADD= -L${LOCALBASE}/lib -lpng -lz -ljpeg -lfreetype -lm
.ifndef WITHOUT_XPM
CFLAGS+=-I${X11BASE}/include/X11 -DHAVE_XPM
LDADD+= -L${X11BASE}/lib -lXpm
.ifdef WITHOUT_X11
CFLAGS+=-DXPM_NOX
.else
LDADD+= -lX11
.endif
.endif
# The package comes with tests, but without any sort of test-harness,
# to run them all automaticly. So building tests is disabled here. -mi
all: lib${LIB}.a ${SHLIB_NAME} ${PROGS} # ${TESTS}
lib${LIB}.a ${SHLIB_NAME}:
make LIB=${LIB} SRCS="${OBJS:.o=.c}" \
SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR} \
CFLAGS="${CFLAGS}" -ECFLAGS LDADD="${LDADD}" \
-f bsd.lib.mk ${.TARGET}
${PROGS} ${TESTS}: ${SHLIB_NAME} lib${LIB}.a
make PROG=${.TARGET} NOMAN=1 LDADD="-L. -lgd" \
CFLAGS="${CFLAGS}" -ECFLAGS -f bsd.prog.mk
install:
mkdir -p ${PREFIX}/include/gd
make LIB=${LIB} LIBDIR="${PREFIX}/lib" \
SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR} \
-f bsd.lib.mk install
cd ${.CURDIR} && ${INSTALL_DATA} ${INCS} ${PREFIX}/include/gd
cd ${.CURDIR} && ${INSTALL_PROGRAM} ${PROGS} "${PREFIX}/bin/"
${INSTALL_SCRIPT} "${.CURDIR}/bdftogd" "${PREFIX}/bin/"

View file

@ -1,178 +0,0 @@
--- Makefile.orig Thu Feb 22 09:03:43 2001
+++ Makefile Sat Feb 24 16:25:23 2001
@@ -3,11 +3,11 @@
#If you do not have gcc, change the setting for COMPILER, but you must
#use an ANSI standard C compiler (NOT the old SunOS 4.1.3 cc
#compiler; get gcc if you are still using it).
-COMPILER=gcc
+COMPILER=${CC}
#If the ar command fails on your system, consult the ar manpage
#for your system.
-AR=ar
+#AR=ar
#If you don't have FreeType, libjpeg and/or Xpm installed, including the
#header files, uncomment this (default). You really must install
@@ -16,8 +16,14 @@
#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.
-#CFLAGS=-O -DHAVE_LIBXPM -DHAVE_LIBPNG -DHAVE_LIBJPEG \
-# -DHAVE_LIBFREETYPE -DHAVE_LIBTTF
+CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE
+.if defined(WITH_X11)
+CFLAGS+=-DHAVE_LIBXPM
+.endif
+
+.if defined(JISX0208)
+CFLAGS+=-DJISX0208
+.endif
#To use the old FreeType 1.x library, add this additional #define
#to the line above
@@ -30,13 +36,15 @@
#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 -ljpeg -lfreetype -lm
#If you do have FreeType, JPEG and/or Xpm fully installed, uncomment a
#variation of this and comment out the line above. Note that
#Xpm requires X11. See also CFLAGS above.
-#LIBS=-lgd -lpng -lz -ljpeg -lfreetype -lm -lttf
+.if defined(WITH_X11)
+LIBS+=-lXpm -lX11
+.endif
#Note: for Freetype 1.x, use DHAVE_LIBTTF and -lttf instead.
@@ -45,7 +53,8 @@
#ensure that the version of gd you are installing is used, and not an
#older release in your directory tree somewhere.
-INCLUDEDIRS=-I. -I/usr/include/freetype2 -I/usr/include/X11 -I/usr/X11R6/include/X11 -I/usr/local/include
+INCLUDEDIRS=-I. -I${LOCALBASE}/include/freetype2 -I${LOCALBASE}/include
+INCLUDEDIRS+=-I${X11BASE}/include/X11 -I${X11BASE}/include/freetype2 -I${X11BASE}/include
#Typical install locations for freetype, zlib, xpm and libpng libraries.
#If yours are somewhere else, other than a standard location
@@ -55,16 +66,17 @@
#on your system can't cause conflicts while building a new one.
#This line shouldn't hurt if you don't actually have some of the
#optional libraries and directories.
-LIBDIRS=-L. -L/usr/local/lib -L/usr/lib/X11 -L/usr/X11R6/lib
+LIBDIRS=-L. -L${LOCALBASE}/lib -Wl,--rpath,${LOCALBASE}/lib
+LIBDIRS+=-L${X11BASE}/lib -Wl,--rpath,${X11BASE}/lib
#Location where libgd.a should be installed by "make install".
-INSTALL_LIB=/usr/local/lib
+INSTALL_LIB=${PREFIX}/lib
#Location where .h files should be installed by "make install".
-INSTALL_INCLUDE=/usr/local/include
+INSTALL_INCLUDE=${PREFIX}/include/gd
#Location where useful non-test programs should be installed by "make install".
-INSTALL_BIN=/usr/local/bin
+INSTALL_BIN=${PREFIX}/bin
#
#
@@ -74,34 +88,44 @@
VERSION=1.8.4
-CC=$(COMPILER) $(INCLUDEDIRS)
-LINK=$(CC) $(LIBDIRS) $(LIBS)
+CC+=$(INCLUDEDIRS)
+#LINK=$(CC) $(LIBDIRS) $(LIBS)
PROGRAMS=$(BIN_PROGRAMS) $(TEST_PROGRAMS)
BIN_PROGRAMS=pngtogd pngtogd2 gdtopng gd2topng gd2copypal gdparttopng webpng
TEST_PROGRAMS=gdtest gddemo gd2time gdtestft gdtestttf
-all: libgd.a $(PROGRAMS)
+SOVER=2
-install: libgd.a $(BIN_PROGRAMS)
- sh ./install-item 644 libgd.a $(INSTALL_LIB)/libgd.a
- sh ./install-item 755 pngtogd $(INSTALL_BIN)/pngtogd
- sh ./install-item 755 pngtogd2 $(INSTALL_BIN)/pngtogd2
- sh ./install-item 755 gdtopng $(INSTALL_BIN)/gdtopng
- sh ./install-item 755 gd2topng $(INSTALL_BIN)/gd2topng
- sh ./install-item 755 gd2copypal $(INSTALL_BIN)/gd2copypal
- sh ./install-item 755 gdparttopng $(INSTALL_BIN)/gdparttopng
- sh ./install-item 755 webpng $(INSTALL_BIN)/webpng
- sh ./install-item 755 bdftogd $(INSTALL_BIN)/bdftogd
- sh ./install-item 644 gd.h $(INSTALL_INCLUDE)/gd.h
- sh ./install-item 644 gdcache.h $(INSTALL_INCLUDE)/gdcache.h
- sh ./install-item 644 gd_io.h $(INSTALL_INCLUDE)/gd_io.h
- sh ./install-item 644 gdfontg.h $(INSTALL_INCLUDE)/gdfontg.h
- sh ./install-item 644 gdfontl.h $(INSTALL_INCLUDE)/gdfontl.h
- sh ./install-item 644 gdfontmb.h $(INSTALL_INCLUDE)/gdfontmb.h
- sh ./install-item 644 gdfonts.h $(INSTALL_INCLUDE)/gdfonts.h
- sh ./install-item 644 gdfontt.h $(INSTALL_INCLUDE)/gdfontt.h
+.SUFFIXES: .c .so .o
+
+.c.so:
+ $(CC) -fpic -DPIC $(CFLAGS) -o $@ -c $<
+
+all: libgd.a libgd.so.$(SOVER) $(PROGRAMS)
+
+install: libgd.a libgd.so.$(SOVER) $(BIN_PROGRAMS)
+ -mkdir -p $(INSTALL_LIB) $(INSTALL_INCLUDE) $(INSTALL_BIN)
+ ${BSD_INSTALL_DATA} libgd.a $(INSTALL_LIB)/libgd.a
+ ${BSD_INSTALL_DATA} libgd.so.$(SOVER) $(INSTALL_LIB)/libgd.so.$(SOVER)
+ -ln -sf libgd.so.$(SOVER) $(INSTALL_LIB)/libgd.so
+ ${BSD_INSTALL_PROGRAM} pngtogd $(INSTALL_BIN)/pngtogd
+ ${BSD_INSTALL_PROGRAM} pngtogd2 $(INSTALL_BIN)/pngtogd2
+ ${BSD_INSTALL_PROGRAM} gdtopng $(INSTALL_BIN)/gdtopng
+ ${BSD_INSTALL_PROGRAM} gd2topng $(INSTALL_BIN)/gd2topng
+ ${BSD_INSTALL_PROGRAM} gd2copypal $(INSTALL_BIN)/gd2copypal
+ ${BSD_INSTALL_PROGRAM} gdparttopng $(INSTALL_BIN)/gdparttopng
+ ${BSD_INSTALL_PROGRAM} webpng $(INSTALL_BIN)/webpng
+ ${BSD_INSTALL_SCRIPT} bdftogd $(INSTALL_BIN)/bdftogd
+ ${BSD_INSTALL_DATA} gd.h $(INSTALL_INCLUDE)/gd.h
+ ${BSD_INSTALL_DATA} gdcache.h $(INSTALL_INCLUDE)/gdcache.h
+ ${BSD_INSTALL_DATA} gd_io.h $(INSTALL_INCLUDE)/gd_io.h
+ ${BSD_INSTALL_DATA} gdfontg.h $(INSTALL_INCLUDE)/gdfontg.h
+ ${BSD_INSTALL_DATA} gdfontl.h $(INSTALL_INCLUDE)/gdfontl.h
+ ${BSD_INSTALL_DATA} gdfontmb.h $(INSTALL_INCLUDE)/gdfontmb.h
+ ${BSD_INSTALL_DATA} gdfonts.h $(INSTALL_INCLUDE)/gdfonts.h
+ ${BSD_INSTALL_DATA} gdfontt.h $(INSTALL_INCLUDE)/gdfontt.h
gddemo: gddemo.o libgd.a
$(CC) gddemo.o -o gddemo $(LIBDIRS) $(LIBS)
@@ -138,18 +162,21 @@
gdtestttf: gdtestttf.o libgd.a
$(CC) --verbose gdtestttf.o -o gdtestttf $(LIBDIRS) $(LIBS)
-libgd.a: gd.o gd_gd.o gd_gd2.o gd_io.o gd_io_dp.o gd_io_file.o gd_ss.o \
+OBJS= 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 \
- gd_wbmp.o gdhelpers.o gd.h gdfontt.h gdfonts.h gdfontmb.h gdfontl.h \
+ gd_wbmp.o gdhelpers.o gd_gif_in.o
+INCS= gd.h gdfontt.h gdfonts.h gdfontmb.h gdfontl.h \
gdfontg.h gdhelpers.h
+
+libgd.a: $(INCS) $(OBJS)
rm -f libgd.a
- $(AR) rc libgd.a 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 \
- gd_wbmp.o gdhelpers.o
+ $(AR) rc libgd.a $(OBJS)
-ranlib libgd.a
+
+libgd.so.$(SOVER): $(INCS) $(OBJS:.o=.so)
+ $(CC) -shared -Wl,-x,-soname,$@ -o $@ $(OBJS:.o=.so) $(LIBDIRS) $(LIBS)
+ ln -sf libgd.so.$(SOVER) libgd.so
clean:
rm -f *.o *.a ${PROGRAMS} test/gdtest.jpg test/gdtest.wbmp

View file

@ -1,87 +0,0 @@
--- gdkanji.c.orig Fri Feb 2 05:23:56 2001
+++ gdkanji.c Wed Feb 7 20:59:08 2001
@@ -103,14 +103,18 @@
unsigned char *str;
#endif
{
- static int whatcode;
+ static int whatcode = ASCII;
+ int oldcode = ASCII;
int c, i;
char *lang = NULL;
c = '\1';
i = 0;
- if (whatcode == 0) whatcode = ASCII;
+ if (whatcode != EUCORSJIS && whatcode != ASCII) {
+ oldcode = whatcode;
+ whatcode = ASCII;
+ }
while ((whatcode == EUCORSJIS || whatcode == ASCII) && c != '\0') {
if ((c = str[i++]) != '\0') {
@@ -167,7 +171,7 @@
if ((c >= 64 && c <= 126) || (c >= 128 && c <= 160))
whatcode = SJIS;
else
- if (c >= 253 && c >= 254) whatcode = EUC;
+ if (c >= 253 && c <= 254) whatcode = EUC;
else
if (c >= 161 && c <= 252) whatcode = EUCORSJIS;
}
@@ -184,6 +188,8 @@
debug("Kanji code detected at %d byte.", i);
#endif
+ if (whatcode == EUCORSJIS && oldcode != ASCII) whatcode = oldcode;
+
if (whatcode == EUCORSJIS) {
if (getenv ("LC_ALL")) lang = getenv ("LC_ALL");
else
@@ -310,7 +316,7 @@
error("invalid code specification: \"%s\" or \"%s\"",
EUCSTR, code);
#endif
- strcpy(to, from);
+ ustrcpy(to, from);
return;
}
@@ -328,7 +334,7 @@
else
#endif
error("something happen");
- strcpy(to, from);
+ ustrcpy(to, from);
return;
}
@@ -526,11 +532,10 @@
t = (unsigned char *)gdMalloc(BUFSIZ);
any2eucjp(t, s, BUFSIZ);
- i = strlen(t);
+ i = strlen((const char *)t);
gdFree(t);
return i;
}
-#endif
#ifdef DEBUG
int main()
@@ -543,7 +548,7 @@
while ( (c = fgetc(stdin)) != '\n' && i < BUFSIZ ) input[i++] = c;
input[i] = '\0';
- printf("input : %d bytes\n", strlen(input));
+ printf("input : %d bytes\n", strlen((const char *)input));
printf("output: %d bytes\n", strwidth(input));
output = (unsigned char *)gdMalloc(BUFSIZ);
@@ -555,4 +560,5 @@
return 0;
}
+#endif
#endif

View file

@ -1,17 +0,0 @@
--- gdttf.c.orig Fri Feb 2 05:23:56 2001
+++ gdttf.c Wed Feb 7 20:57:34 2001
@@ -221,11 +221,10 @@
byte = *((unsigned char *) str);
#ifdef JISX0208
if (0xA1 <= byte && byte <= 0xFE) {
- int jiscode, ku, ten;
+ int ku, ten;
- jiscode = 0x100 * (byte & 0x7F) + (str[1] & 0x7F);
- ku = (jiscode >> 8) - 0x20;
- ten = (jiscode % 256) - 0x20;
+ ku = (byte & 0x7F) - 0x20;
+ ten = (str[1] & 0x7F) - 0x20;
if ( (ku < 1 || ku > 92) || (ten < 1 || ten > 94) ) {
*chPtr = (Tcl_UniChar) byte;
return 1;

View file

@ -4,8 +4,7 @@ images is troubled because of Unisys' zeal in patent enforcement.
--- gd.h Tue Feb 6 14:44:01 2001
+++ gd.h Fri Jul 27 16:10:38 2001
@@ -95,2 +95,4 @@
gdImagePtr gdImageCreate(int sx, int sy);
@@ -184,1 +184,3 @@
+gdImagePtr gdImageCreateFromGif(FILE *fd);
+gdImagePtr gdImageCreateFromGifCtx(gdIOCtxPtr in);
gdImagePtr gdImageCreateFromPng(FILE *fd);

View file

@ -1 +1 @@
A graphics library for fast PNG creation
A graphics library for fast creation of images

View file

@ -1,20 +1,15 @@
DESCRIPTION
gd is a graphics library. It allows your code to quickly draw images
complete with lines, arcs, text, multiple colors, cut and paste from
other images, and flood fills, and write out the result as a PNG or JPEG
file. This is particularly useful in World Wide Web applications, where
PNG and JPEG are two of the formats accepted for inline images by most
browsers.
gd is a graphics library. It allows your code to quickly draw images
complete with lines, arcs, text, multiple colors, cut and paste from
other images, and flood fills, and write out the result as a .PNG file.
This is particularly useful in World Wide Web applications, where .PNG
is the format used for inline images.
gd is not a paint program. If you are looking for a paint program, you
are looking in the wrong place. If you are not a programmer, you are
looking in the wrong place.
gd does not provide for every possible desirable graphics operation.
It is not necessary or desirable for gd to become a kitchen-sink
graphics package, but version 1.7.3 incorporates most of the commonly
requested features for an 8-bit 2D package. Support for truecolor
images, JPEG and truecolor PNG is planned for version 2.0.
gd does not provide for every possible desirable graphics operation.
It is not necessary or desirable for gd to become a kitchen-sink
graphics package, but version 2.0 does include most frequently requested
features, including both truecolor and palette images, resampling
(smooth resizing of truecolor images) and so forth.
AUTHOR
gd was written by Thomas Boutell and is currently distributed by

View file

@ -16,5 +16,5 @@ include/gd/gdfonts.h
include/gd/gdfontt.h
lib/libgd.a
lib/libgd.so
lib/libgd.so.2
lib/libgd.so.3.0
@dirrm include/gd