drop netware support #294

We have no way of testing netware, and the OS has been dead for years.
PHP also has dropped support for it.

Closes #294.
master
Mike Frysinger 2018-08-25 12:50:23 -04:00
parent ac16bdf2d4
commit e6bb110663
9 changed files with 3 additions and 1225 deletions

View File

@ -1,6 +1,6 @@
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src config tests
EXTRA_DIST = test docs examples windows VMS cmake netware bootstrap.sh CMakeLists.txt CONTRIBUTORS README.md
EXTRA_DIST = test docs examples windows VMS cmake bootstrap.sh CMakeLists.txt CONTRIBUTORS README.md
clean-local:
$(srcdir)/cmake/distclean.sh --automake

View File

@ -18,22 +18,6 @@ AC_CONFIG_AUX_DIR(config)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_HOST
# This is not used anywhere. However, Makefile.netware searches
# through configure for these definitions to find the version numbers.
# (Assuming anyone still uses Netware, that should be changed to use
# gd.h via getver.pl instead.)
GDLIB_MAJOR=gd_MAJOR
GDLIB_MINOR=gd_MINOR
GDLIB_REVISION=gd_REVISION
GDLIB_EXTRA=gd_EXTRA
GDLIB_VERSION=gd_PKG_VERSION
AC_SUBST(GDLIB_MAJOR)
AC_SUBST(GDLIB_MINOR)
AC_SUBST(GDLIB_REVISION)
AC_SUBST(GDLIB_EXTRA)
AC_SUBST(GDLIB_VERSION)
dnl Keep the libtool version details in an external script so cmake can
dnl access the values too.
define([lt_gv], [config/getlib.sh ]$1)

View File

@ -1,549 +0,0 @@
#################################################################
#
## Makefile for building libgd.nlm (NetWare version - gnu make)
## Use: make -f Makefile
##
## Comments to: Guenter Knauf <eflash@gmx.net>
#
#################################################################
# Edit the path below to point to the base of your Novell NDK.
ifndef NDKBASE
NDKBASE = c:/novell
endif
# Base for the lib sources
ifndef LIBBASE
LIBBASE = ../..
endif
# All library code is statically linked to avoid problems with other lib NLMs.
# Edit the path below to point to your libpng sources or set environment var.
ifndef LIBPNG
LIBPNG = $(LIBBASE)/libpng-1.2.16
endif
# Edit the path below to point to your libpng sources or set environment var.
ifndef LIBJPEG
LIBJPEG = $(LIBBASE)/jpeg-6b
endif
# Edit the path below to point to your freetype sources or set environment var.
ifndef LIBFT2
LIBFT2 = $(LIBBASE)/freetype-2.3.4
endif
# Edit the path below to point to your zlib sources or set environment var.
ifndef ZLIBSDK
ZLIBSDK = $(LIBBASE)/zlib-1.2.3
endif
LIBGD = ..
ifndef INSTDIR
INSTDIR = libgd-$(LIBGD_VERSION_STR)-bin-nw
endif
# Edit the vars below to change NLM target settings.
TARGET = libgd
COPYR = Copyright (C) 1996-2007 Boutell.Com, Inc.
WWW = http://www.libgd.org/
DESCR = libgd $(LIBGD_VERSION_STR) - $(WWW)
MTSAFE = YES
STACK = 64000
SCREEN = none
EXPORTS = @$(TARGET).imp
EPREFIX = LIBGD
# Edit the var below to point to your lib architecture.
ifndef LIBARCH
LIBARCH = LIBC
endif
# must be equal to DEBUG or NDEBUG
DB = NDEBUG
# DB = DEBUG
# Optimization: -O<n> or debugging: -g
ifeq ($(DB),NDEBUG)
OPT = -O2
OBJDIR = release
else
OPT = -g
OBJDIR = debug
endif
# Include the version info retrieved from xml2ver.h
-include $(OBJDIR)/version.inc
# The following line defines your compiler.
ifdef METROWERKS
CC = mwccnlm
else
CC = gcc
endif
# http://www.gknw.net/development/prgtools/awk.zip
AWK = awk
YACC = bison -y
CP = cp -afv
# RM = rm -f
# if you want to mark the target as MTSAFE you will need a tool for
# generating the xdc data for the linker; here's a minimal tool:
# http://www.gknw.net/development/prgtools/mkxdc.zip
MPKXDC = mkxdc
PATCH = patch
PERLRUN = perl
# Global flags for all compilers
CFLAGS = $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
#CFLAGS += -DHAVE_LIBPNG=1 -DHAVE_LIBJPEG=1
#CFLAGS += -DHAVE_LIBFREETYPE=1 -DHAVE_FT2BUILD_H=1
#CFLAGS += -DHAVE_LIBZ=1
ifeq ($(CC),mwccnlm)
LD = mwldnlm
LDFLAGS = -nostdlib $(PRELUDE) $(OBJL) $(LDLIBS) -o $@ -commandfile
AR = mwldnlm
ARFLAGS = -type library -w nocmdline $(OBJS) -o
LIBEXT = lib
CFLAGS += -msgstyle gcc -gccinc -inline off -opt nointrinsics -proc 586
CFLAGS += -relax_pointers
#CFLAGS += -w on
ifeq ($(LIBARCH),LIBC)
PRELUDE = $(SDK_LIBC)/imports/libcpre.o
CFLAGS += -align 4
else
PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
# CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
CFLAGS += -align 1
endif
else
LD = nlmconv
LDFLAGS = -T
AR = ar
ARFLAGS = -cq
LIBEXT = a
CFLAGS += -fno-builtin -fpcc-struct-return -fno-strict-aliasing
CFLAGS += -Wall -Wno-unused -Wno-main # -pedantic
ifeq ($(LIBARCH),LIBC)
PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
else
PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
endif
endif
NDK_ROOT = $(NDKBASE)/ndk
SDK_CLIB = $(NDK_ROOT)/nwsdk
SDK_LIBC = $(NDK_ROOT)/libc
INCLUDES = -I. -I$(LIBGD) -I$(LIBPNG) -I$(LIBJPEG) -I$(LIBFT2)/include -I$(ZLIBSDK)
ifeq ($(LIBARCH),LIBC)
INCLUDES += -I$(SDK_LIBC)/include
# INCLUDES += -I$(SDK_LIBC)/include/nks
CFLAGS += -D_POSIX_SOURCE
# CFLAGS += -D__ANSIC__
else
INCLUDES += -I$(SDK_CLIB)/include/nlm
# INCLUDES += -I$(SDK_CLIB)/include
# INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete
endif
CFLAGS += $(INCLUDES)
ifeq ($(MTSAFE),YES)
XDCOPT = -n
endif
ifeq ($(MTSAFE),NO)
XDCOPT = -u
endif
ifdef XDCOPT
XDCDATA = $(OBJDIR)/$(TARGET).xdc
endif
ifeq ($(findstring linux,$(OSTYPE)),linux)
DL = '
#-include $(NDKBASE)/nlmconv/ncpfs.inc
endif
GDLIBOBJS = \
$(OBJDIR)/gd.o \
$(OBJDIR)/gd_gd.o \
$(OBJDIR)/gd_gd2.o \
$(OBJDIR)/gd_gif_in.o \
$(OBJDIR)/gd_gif_out.o \
$(OBJDIR)/gd_io.o \
$(OBJDIR)/gd_io_dp.o \
$(OBJDIR)/gd_io_file.o \
$(OBJDIR)/gd_io_ss.o \
$(OBJDIR)/gd_jpeg.o \
$(OBJDIR)/gd_png.o \
$(OBJDIR)/gd_ss.o \
$(OBJDIR)/gd_topal.o \
$(OBJDIR)/gd_wbmp.o \
$(OBJDIR)/gdcache.o \
$(OBJDIR)/gdfontg.o \
$(OBJDIR)/gdfontl.o \
$(OBJDIR)/gdfontmb.o \
$(OBJDIR)/gdfonts.o \
$(OBJDIR)/gdfontt.o \
$(OBJDIR)/gdft.o \
$(OBJDIR)/gdfx.o \
$(OBJDIR)/gdhelpers.o \
$(OBJDIR)/gdkanji.o \
$(OBJDIR)/gdtables.o \
$(OBJDIR)/gdxpm.o \
$(OBJDIR)/wbmp.o \
$(EOLIST)
ifeq "$(wildcard $(LIBGD)/gd_security.c)" "$(LIBGD)/gd_security.c"
GDLIBOBJS += \
$(OBJDIR)/gd_security.o \
$(EOLIST)
endif
PNGLIBOBJS = \
$(OBJDIR)/png.o \
$(OBJDIR)/pngerror.o \
$(OBJDIR)/pngget.o \
$(OBJDIR)/pngmem.o \
$(OBJDIR)/pngpread.o \
$(OBJDIR)/pngread.o \
$(OBJDIR)/pngrio.o \
$(OBJDIR)/pngrtran.o \
$(OBJDIR)/pngrutil.o \
$(OBJDIR)/pngset.o \
$(OBJDIR)/pngtrans.o \
$(OBJDIR)/pngwio.o \
$(OBJDIR)/pngwrite.o \
$(OBJDIR)/pngwtran.o \
$(OBJDIR)/pngwutil.o \
$(EOLIST)
ifeq "$(wildcard $(LIBPNG)/pnggccrd.c)" "$(LIBPNG)/pnggccrd.c"
PNGLIBOBJS += \
$(OBJDIR)/pnggccrd.o \
$(OBJDIR)/pngvcrd.o \
$(EOLIST)
endif
OBJ_JPG = $(OBJDIR)
JPGLIBOBJS = \
$(OBJ_JPG)/jcapimin.o \
$(OBJ_JPG)/jcapistd.o \
$(OBJ_JPG)/jccoefct.o \
$(OBJ_JPG)/jccolor.o \
$(OBJ_JPG)/jcdctmgr.o \
$(OBJ_JPG)/jchuff.o \
$(OBJ_JPG)/jcinit.o \
$(OBJ_JPG)/jcmainct.o \
$(OBJ_JPG)/jcmarker.o \
$(OBJ_JPG)/jcmaster.o \
$(OBJ_JPG)/jcomapi.o \
$(OBJ_JPG)/jcparam.o \
$(OBJ_JPG)/jcphuff.o \
$(OBJ_JPG)/jcprepct.o \
$(OBJ_JPG)/jcsample.o \
$(OBJ_JPG)/jctrans.o \
$(OBJ_JPG)/jdapimin.o \
$(OBJ_JPG)/jdapistd.o \
$(OBJ_JPG)/jdatadst.o \
$(OBJ_JPG)/jdatasrc.o \
$(OBJ_JPG)/jdcoefct.o \
$(OBJ_JPG)/jdcolor.o \
$(OBJ_JPG)/jddctmgr.o \
$(OBJ_JPG)/jdhuff.o \
$(OBJ_JPG)/jdinput.o \
$(OBJ_JPG)/jdmainct.o \
$(OBJ_JPG)/jdmarker.o \
$(OBJ_JPG)/jdmaster.o \
$(OBJ_JPG)/jdmerge.o \
$(OBJ_JPG)/jdphuff.o \
$(OBJ_JPG)/jdpostct.o \
$(OBJ_JPG)/jdsample.o \
$(OBJ_JPG)/jdtrans.o \
$(OBJ_JPG)/jerror.o \
$(OBJ_JPG)/jfdctflt.o \
$(OBJ_JPG)/jfdctfst.o \
$(OBJ_JPG)/jfdctint.o \
$(OBJ_JPG)/jidctflt.o \
$(OBJ_JPG)/jidctfst.o \
$(OBJ_JPG)/jidctint.o \
$(OBJ_JPG)/jidctred.o \
$(OBJ_JPG)/jquant1.o \
$(OBJ_JPG)/jquant2.o \
$(OBJ_JPG)/jutils.o \
$(OBJ_JPG)/jmemmgr.o \
$(OBJ_JPG)/jmemansi.o \
$(EOLIST)
LIBFT2OBJS = \
$(OBJ_FT2)/autohint.o \
$(OBJ_FT2)/bdf.o \
$(OBJ_FT2)/cff.o \
$(OBJ_FT2)/ftbase.o \
$(OBJ_FT2)/ftcache.o \
$(OBJ_FT2)/ftglyph.o \
$(OBJ_FT2)/ftinit.o \
$(OBJ_FT2)/ftmm.o \
$(OBJ_FT2)/ftsystem.o \
$(OBJ_FT2)/pcf.o \
$(OBJ_FT2)/pfr.o \
$(OBJ_FT2)/psaux.o \
$(OBJ_FT2)/pshinter.o \
$(OBJ_FT2)/psmodule.o \
$(OBJ_FT2)/raster.o \
$(OBJ_FT2)/sfnt.o \
$(OBJ_FT2)/smooth.o \
$(OBJ_FT2)/truetype.o \
$(OBJ_FT2)/type1.o \
$(OBJ_FT2)/type1cid.o \
$(OBJ_FT2)/type42.o \
$(OBJ_FT2)/winfnt.o \
$(OBJ_FT2)/infutil.o \
$(OBJ_FT2)/ftgzip.o \
$(OBJ_FT2)/ftlzw.o \
$(OBJ_FT2)/ftpfr.o \
$(OBJ_FT2)/ftstroke.o \
$(OBJ_FT2)/ftsynth.o \
$(OBJ_FT2)/fttype1.o \
$(OBJ_FT2)/ftwinfnt.o \
$(OBJ_FT2)/ftxf86.o \
$(OBJ_FT2)/ftbbox.o \
$(EOLIST)
ZLIBOBJS = \
$(OBJDIR)/adler32.o \
$(OBJDIR)/compress.o \
$(OBJDIR)/crc32.o \
$(OBJDIR)/deflate.o \
$(OBJDIR)/inflate.o \
$(OBJDIR)/inffast.o \
$(OBJDIR)/inftrees.o \
$(OBJDIR)/trees.o \
$(OBJDIR)/uncompr.o \
$(OBJDIR)/zutil.o \
$(EOLIST)
ifeq "$(wildcard $(ZLIBSDK)/infblock.c)" "$(ZLIBSDK)/infblock.c"
ZLIBOBJS += \
$(OBJDIR)/infblock.o \
$(OBJDIR)/infcodes.o \
$(OBJDIR)/infutil.o \
$(EOLIST)
endif
LDLIBS += $(LIBFT2)/builds/netware/LIBC/libft2.$(LIBEXT)
OBJS := $(GDLIBOBJS) $(PNGLIBOBJS) $(JPGLIBOBJS) $(ZLIBOBJS)
OBJL = $(OBJS) $(OBJDIR)/nwlibc.o
vpath %.c . $(LIBGD) $(LIBPNG) $(LIBJPEG) $(ZLIBSDK)
.PHONY: all prebuild dist install clean clean-all test-cmds help
all: lib nlm
nlm: prebuild $(TARGET).nlm
lib: prebuild $(TARGET).$(LIBEXT)
prebuild: $(OBJDIR) $(OBJDIR)/version.inc config.h
$(OBJDIR)/%.o: %.c
# @echo Compiling $<
$(CC) $(CFLAGS) -c $< -o $@
$(OBJDIR)/version.inc: ../configure $(OBJDIR)
@echo Creating $@
@$(AWK) -f get_ver.awk $< > $@ # TODO: get version info from src/gd.h
dist: all
-$(RM) -r $(OBJDIR)*
install: $(INSTDIR) all
@$(CP) $(TARGET).nlm $(INSTDIR)
@$(CP) $(TARGET).$(LIBEXT) $(INSTDIR)
@$(CP) ../CHANGES $(INSTDIR)
@$(CP) ../COPYING $(INSTDIR)
@$(CP) ../README $(INSTDIR)
@$(CP) ../RELEASE-NOTES $(INSTDIR)
clean:
-$(RM) config.h
-$(RM) -r $(OBJDIR)*
-$(RM) $(TARGET).nlm $(TARGET).$(LIBEXT) $(TARGET).imp
dist-clean:
-$(RM) config.h
-$(RM) -r $(OBJDIR)*
clean-all: clean
-$(MAKE) -C tests -f Makefile clean
test-cmds:
-$(MAKE) -C tests -f Makefile
$(INSTDIR):
@mkdir $(INSTDIR)
$(OBJDIR):
@mkdir $(OBJDIR)
$(TARGET).$(LIBEXT): $(OBJS)
@echo Creating $@
@-$(RM) $@
@$(AR) $(ARFLAGS) $@ $^
$(TARGET).nlm: $(OBJDIR)/$(TARGET).def $(TARGET).imp $(OBJL) $(XDCDATA)
@echo Linking $@
@-$(RM) $@
@$(LD) $(LDFLAGS) $<
$(OBJDIR)/%.xdc: Makefile
@echo Creating $@
@$(MPKXDC) $(XDCOPT) $@
$(OBJDIR)/%.def: Makefile
@echo $(DL)# DEF file for linking with $(LD)$(DL) > $@
@echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
@echo $(DL)# All your changes will be lost!!$(DL) >> $@
@echo $(DL)#$(DL) >> $@
@echo $(DL)copyright "$(COPYR)"$(DL) >> $@
@echo $(DL)description "$(DESCR)"$(DL) >> $@
@echo $(DL)version $(LIBGD_VERSION)$(DL) >> $@
ifdef NLMTYPE
@echo $(DL)type $(NLMTYPE)$(DL) >> $@
endif
ifdef STACK
@echo $(DL)stack $(STACK)$(DL) >> $@
endif
ifdef SCREEN
@echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
else
@echo $(DL)screenname "DEFAULT"$(DL) >> $@
endif
ifeq ($(DB),DEBUG)
@echo $(DL)debug$(DL) >> $@
endif
@echo $(DL)threadname "$(TARGET)"$(DL) >> $@
ifdef XDCDATA
@echo $(DL)xdcdata $(XDCDATA)$(DL) >> $@
endif
@echo $(DL)flag_on 64$(DL) >> $@
ifeq ($(LIBARCH),CLIB)
@echo $(DL)start _Prelude$(DL) >> $@
@echo $(DL)exit _Stop$(DL) >> $@
@echo $(DL)import @$(SDK_CLIB)/imports/clib.imp$(DL) >> $@
@echo $(DL)import @$(SDK_CLIB)/imports/threads.imp$(DL) >> $@
@echo $(DL)import @$(SDK_CLIB)/imports/nlmlib.imp$(DL) >> $@
@echo $(DL)import @$(SDK_CLIB)/imports/socklib.imp$(DL) >> $@
@echo $(DL)module clib$(DL) >> $@
else
@echo $(DL)pseudopreemption$(DL) >> $@
@echo $(DL)start _LibCPrelude$(DL) >> $@
@echo $(DL)exit _LibCPostlude$(DL) >> $@
@echo $(DL)check _LibCCheckUnload$(DL) >> $@
@echo $(DL)import @$(SDK_LIBC)/imports/libc.imp$(DL) >> $@
@echo $(DL)import @$(SDK_LIBC)/imports/netware.imp$(DL) >> $@
@echo $(DL)module libc$(DL) >> $@
endif
ifdef MODULES
@echo $(DL)module $(MODULES)$(DL) >> $@
endif
ifdef IMPORTS
@echo $(DL)import $(IMPORTS)$(DL) >> $@
endif
ifdef EXPORTS
@echo $(DL)export $(EXPORTS)$(DL) >> $@
endif
ifeq ($(LD),nlmconv)
@echo $(DL)input $(OBJL)$(DL) >> $@
@echo $(DL)input $(PRELUDE)$(DL) >> $@
ifdef LDLIBS
@echo $(DL)input $(LDLIBS)$(DL) >> $@
endif
@echo $(DL)output $(TARGET).nlm$(DL) >> $@
endif
config.h: Makefile
@echo Creating $@
@echo $(DL)/* $@ for NetWare target.$(DL) > $@
@echo $(DL)** Do not edit this file - it is created by make!$(DL) >> $@
@echo $(DL)** All your changes will be lost!!$(DL) >> $@
@echo $(DL)*/$(DL) >> $@
@echo $(DL)#define OS "i586-pc-NetWare"$(DL) >> $@
@echo $(DL)#define VERSION "$(LIBGD_VERSION_STR)"$(DL) >> $@
@echo $(DL)#define PACKAGE_BUGREPORT "http://bugs.libgd.org/"$(DL) >> $@
@echo $(DL)#define HAVE_ARPA_INET_H 1$(DL) >> $@
@echo $(DL)#define HAVE_ASSERT_H 1$(DL) >> $@
@echo $(DL)#define HAVE_DLFCN_H 1$(DL) >> $@
@echo $(DL)#define HAVE_DLOPEN 1$(DL) >> $@
@echo $(DL)#define HAVE_ERR_H 1$(DL) >> $@
@echo $(DL)#define HAVE_ERRNO_H 1$(DL) >> $@
@echo $(DL)#define HAVE_FCNTL_H 1$(DL) >> $@
@echo $(DL)#define HAVE_FIONBIO 1$(DL) >> $@
@echo $(DL)#define HAVE_GETHOSTBYADDR 1$(DL) >> $@
@echo $(DL)#define HAVE_GETTIMEOFDAY 1$(DL) >> $@
@echo $(DL)#define HAVE_INET_ADDR 1$(DL) >> $@
@echo $(DL)#define HAVE_INET_NTOA 1$(DL) >> $@
@echo $(DL)#define HAVE_INET_PTON 1$(DL) >> $@
@echo $(DL)#define HAVE_INTTYPES_H 1$(DL) >> $@
@echo $(DL)#define HAVE_LIMITS_H 1$(DL) >> $@
@echo $(DL)#define HAVE_LONGLONG 1$(DL) >> $@
@echo $(DL)#define HAVE_MALLOC_H 1$(DL) >> $@
@echo $(DL)#define HAVE_NETINET_IN_H 1$(DL) >> $@
@echo $(DL)#define HAVE_SELECT 1$(DL) >> $@
@echo $(DL)#define HAVE_SETJMP_H 1$(DL) >> $@
@echo $(DL)#define HAVE_SIGNAL 1$(DL) >> $@
@echo $(DL)#define HAVE_SOCKET 1$(DL) >> $@
@echo $(DL)#define HAVE_STDARG_H 1$(DL) >> $@
@echo $(DL)#define HAVE_STDDEF_H 1$(DL) >> $@
@echo $(DL)#define HAVE_STDINT_H 1$(DL) >> $@
@echo $(DL)#define HAVE_STDLIB_H 1$(DL) >> $@
@echo $(DL)#define HAVE_STRCASECMP 1$(DL) >> $@
@echo $(DL)#define HAVE_STRDUP 1$(DL) >> $@
@echo $(DL)#define HAVE_STRFTIME 1$(DL) >> $@
@echo $(DL)#define HAVE_STRING_H 1$(DL) >> $@
@echo $(DL)#define HAVE_STRLCAT 1$(DL) >> $@
@echo $(DL)#define HAVE_STRLCPY 1$(DL) >> $@
@echo $(DL)#define HAVE_STRSTR 1$(DL) >> $@
@echo $(DL)#define HAVE_SYS_PARAM_H 1$(DL) >> $@
@echo $(DL)#define HAVE_SYS_SELECT_H 1$(DL) >> $@
@echo $(DL)#define HAVE_SYS_STAT_H 1$(DL) >> $@
@echo $(DL)#define HAVE_SYS_TIME_H 1$(DL) >> $@
@echo $(DL)#define HAVE_TERMIOS_H 1$(DL) >> $@
@echo $(DL)#define HAVE_TIME_H 1$(DL) >> $@
@echo $(DL)#define HAVE_UNAME 1$(DL) >> $@
@echo $(DL)#define HAVE_UNISTD_H 1$(DL) >> $@
@echo $(DL)#define STDC_HEADERS 1$(DL) >> $@
@echo $(DL)#define TIME_WITH_SYS_TIME 1$(DL) >> $@
@echo $(DL)#define HAVE_SYS_TYPES_H 1$(DL) >> $@
@echo $(DL)#define HAVE_ZLIB_H 1$(DL) >> $@
@echo $(DL)#define HAVE_LIBZ 1$(DL) >> $@
@echo $(DL)#define HAVE_LIBPNG 1$(DL) >> $@
@echo $(DL)#define HAVE_LIBJPEG 1$(DL) >> $@
@echo $(DL)#define HAVE_LIBFREETYPE 1$(DL) >> $@
@echo $(DL)#define HAVE_FT2BUILD_H 1$(DL) >> $@
# @echo $(DL)#define DEFAULT_FONTPATH "sys:/java/nwgfx/lib/x11/fonts/ttf"$(DL) >> $@
# @echo $(DL)#define PATHSEPARATOR ";"$(DL) >> $@
$(TARGET).imp: get_exp.awk $(LIBGD)/gd.h
@echo Creating $@
@$(AWK) -v EPREFIX=$(EPREFIX) -f $^ > $@
patch: Makefile
@echo Patching sources...
$(PATCH) -d $(LIBGD) -b -p 0 -i $(LIBGD)/netware/$(notdir $(wildcard $(LIBGD)/netware/*.diff))
help:
@echo $(DL)===========================================================$(DL)
@echo Novell NDK Base = $(NDKBASE)
@echo libpng Source = $(LIBPNG)
@echo libjpeg Source = $(LIBJPEG)
@echo Freetype 2 SDK = $(LIBFT2)
@echo Zlib SDK = $(ZLIBSDK)
@echo $(DL)===========================================================$(DL)
@echo $(DL)libgd $(LIBGD_VERSION_STR) - available targets are:$(DL)
@echo $(DL)$(MAKE) all$(DL)
@echo $(DL)$(MAKE) nlm$(DL)
@echo $(DL)$(MAKE) lib$(DL)
@echo $(DL)$(MAKE) clean$(DL)
@echo $(DL)$(MAKE) clean-all$(DL)
@echo $(DL)$(MAKE) test-cmds$(DL)
@echo $(DL)$(MAKE) patch$(DL)
@echo $(DL)===========================================================$(DL)

View File

@ -1,34 +0,0 @@
#!awk
# awk hack to fetch libgd export functions from header
# and write them to STDOUT. Here you can get an awk version for Win32:
# http://www.gknw.net/development/prgtools/awk.zip
#
BEGIN {
print "# Exports extracted from " ARGV[1] "";
print "# Do not edit this file - it is created by make!";
print "# All your changes will be lost!!";
if (EPREFIX) {
print " (" EPREFIX ")";
}
print " gdFontGetGiant,";
print " gdFontGetLarge,";
print " gdFontGetMediumBold,";
print " gdFontGetSmall,";
print " gdFontGetTiny,";
print " gdImageSquareToCircle,";
print " gdImageStringFTCircle,";
print " gdImageSharpen,";
}
# try to catch the function names from lines like:
# BGD_DECLARE(gdImagePtr) function ...
# BGD_DECLARE(void *) function ...
#
/^[ \t]*BGD_DECLARE\([^\)]*\) +(gd[A-Za-z0-9_]+)/ {
sub(/^[ \t]*BGD_DECLARE\([^\)]+\) +/, "");
sub(/[ \t]*\(.*$/, "");
# hack to filter gdImageEllipse() since we have no C implementation.
if ($0 != "gdImageEllipse") {
print " " $0 ",";
}
}

View File

@ -1,25 +0,0 @@
#!awk
# awk script which fetches libgd version number and string from input file
# and writes them to STDOUT. Here you can get an awk version for Win32:
# http://www.gknw.net/development/prgtools/awk.zip
#
BEGIN {
while ((getline < ARGV[1]) > 0) {
if (match ($0, /^GDLIB_MAJOR=([0-9]*)$/)) {
split($1, t, "=");
v_maj = t[2];
}
if (match ($0, /^GDLIB_MINOR=([0-9]*)$/)) {
split($1, t, "=");
v_min = t[2];
}
if (match ($0, /^GDLIB_REVISION=([0-9]*)$/)) {
split($1, t, "=");
v_rev = t[2];
}
}
libgd_ver = v_maj "," v_min "," v_rev;
libgd_ver_str = v_maj "." v_min "." v_rev;
print "LIBGD_VERSION = " libgd_ver "";
print "LIBGD_VERSION_STR = " libgd_ver_str "";
}

View File

@ -1,23 +0,0 @@
/* Simple _NonAppStop() implementation which can be linked to your
* NLM in order to keep the screen open when the NLM terminates
* (the good old clib behaviour).
* You dont have to call it, its done automatically from LibC.
*
* 2004-Aug-11 by Guenter Knauf
*
* URL: http://www.gknw.com/development/mk_nlm/
*/
#include <stdio.h>
#include <screen.h>
void _NonAppStop()
{
uint16_t row, col;
GetScreenSize(&row, &col);
gotorowcol(row-1, 0);
/* pressanykey(); */
printf("<Press any key to close screen> ");
getcharacter();
}

View File

@ -1,287 +0,0 @@
/*********************************************************************
* Universal NetWare library stub. *
* written by Ulrich Neuman and given to OpenSource copyright-free. *
* version: 1.0 *
*********************************************************************/
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <library.h>
#include <netware.h>
#include <screen.h>
#include <nks/thread.h>
#include <nks/synch.h>
typedef struct {
int _errno;
void *twentybytes;
} libthreaddata_t;
typedef struct {
int x;
int y;
int z;
void *tenbytes;
NXKey_t perthreadkey; /* if -1, no key obtained... */
NXMutex_t *lock;
} libdata_t;
int gLibId = -1;
void *gLibHandle = (void *) NULL;
rtag_t gAllocTag = (rtag_t) NULL;
NXMutex_t *gLibLock = (NXMutex_t *) NULL;
/* internal library function prototypes... */
int DisposeLibraryData ( void * );
void DisposeThreadData ( void * );
int GetOrSetUpData ( int id, libdata_t **data, libthreaddata_t **threaddata );
int _NonAppStart
(
void *NLMHandle,
void *errorScreen,
const char *cmdLine,
const char *loadDirPath,
size_t uninitializedDataLength,
void *NLMFileHandle,
int (*readRoutineP)( int conn, void *fileHandle, size_t offset,
size_t nbytes, size_t *bytesRead, void *buffer ),
size_t customDataOffset,
size_t customDataSize,
int messageCount,
const char **messages
)
{
NX_LOCK_INFO_ALLOC(liblock, "Per-Application Data Lock", 0);
#ifndef __GNUC__
#pragma unused(cmdLine)
#pragma unused(loadDirPath)
#pragma unused(uninitializedDataLength)
#pragma unused(NLMFileHandle)
#pragma unused(readRoutineP)
#pragma unused(customDataOffset)
#pragma unused(customDataSize)
#pragma unused(messageCount)
#pragma unused(messages)
#endif
/*
** Here we process our command line, post errors (to the error screen),
** perform initializations and anything else we need to do before being able
** to accept calls into us. If we succeed, we return non-zero and the NetWare
** Loader will leave us up, otherwise we fail to load and get dumped.
*/
gAllocTag = AllocateResourceTag(NLMHandle,
"<library-name> memory allocations", AllocSignature);
if (!gAllocTag) {
OutputToScreen(errorScreen, "Unable to allocate resource tag for "
"library memory allocations.\n");
return -1;
}
gLibId = register_library(DisposeLibraryData);
if (gLibId < -1) {
OutputToScreen(errorScreen, "Unable to register library with kernel.\n");
return -1;
}
gLibHandle = NLMHandle;
gLibLock = NXMutexAlloc(0, 0, &liblock);
if (!gLibLock) {
OutputToScreen(errorScreen, "Unable to allocate library data lock.\n");
return -1;
}
return 0;
}
/*
** Here we clean up any resources we allocated. Resource tags is a big part
** of what we created, but NetWare doesn't ask us to free those.
*/
void _NonAppStop( void )
{
(void) unregister_library(gLibId);
NXMutexFree(gLibLock);
}
/*
** This function cannot be the first in the file for if the file is linked
** first, then the check-unload function's offset will be nlmname.nlm+0
** which is how to tell that there isn't one. When the check function is
** first in the linked objects, it is ambiguous. For this reason, we will
** put it inside this file after the stop function.
**
** Here we check to see if it's alright to ourselves to be unloaded. If not,
** we return a non-zero value. Right now, there isn't any reason not to allow
** it.
*/
int _NonAppCheckUnload( void )
{
return 0;
}
int GetOrSetUpData
(
int id,
libdata_t **appData,
libthreaddata_t **threadData
)
{
int err;
libdata_t *app_data;
libthreaddata_t *thread_data;
NXKey_t key;
NX_LOCK_INFO_ALLOC(liblock, "Application Data Lock", 0);
err = 0;
thread_data = (libthreaddata_t *) NULL;
/*
** Attempt to get our data for the application calling us. This is where we
** store whatever application-specific information we need to carry in support
** of calling applications.
*/
app_data = (libdata_t *) get_app_data(id);
if (!app_data) {
/*
** This application hasn't called us before; set up application AND per-thread
** data. Of course, just in case a thread from this same application is calling
** us simultaneously, we better lock our application data-creation mutex. We
** also need to recheck for data after we acquire the lock because WE might be
** that other thread that was too late to create the data and the first thread
** in will have created it.
*/
NXLock(gLibLock);
if (!(app_data = (libdata_t *) get_app_data(id))) {
app_data = (libdata_t *) malloc(sizeof(libdata_t));
if (app_data) {
memset(app_data, 0, sizeof(libdata_t));
app_data->tenbytes = malloc(10);
app_data->lock = NXMutexAlloc(0, 0, &liblock);
if (!app_data->tenbytes || !app_data->lock) {
if (app_data->lock)
NXMutexFree(app_data->lock);
free(app_data);
app_data = (libdata_t *) NULL;
err = ENOMEM;
}
if (app_data) {
/*
** Here we burn in the application data that we were trying to get by calling
** get_app_data(). Next time we call the first function, we'll get this data
** we're just now setting. We also go on here to establish the per-thread data
** for the calling thread, something we'll have to do on each application
** thread the first time it calls us.
*/
err = set_app_data(gLibId, app_data);
if (err) {
free(app_data);
app_data = (libdata_t *) NULL;
err = ENOMEM;
} else {
/* create key for thread-specific data... */
err = NXKeyCreate(DisposeThreadData, (void *) NULL, &key);
if (err) /* (no more keys left?) */
key = -1;
app_data->perthreadkey = key;
}
}
}
}
NXUnlock(gLibLock);
}
if (app_data) {
key = app_data->perthreadkey;
if ( key != -1 /* couldn't create a key? no thread data */
&& !(err = NXKeyGetValue(key, (void **) &thread_data))
&& !thread_data) {
/*
** Allocate the per-thread data for the calling thread. Regardless of whether
** there was already application data or not, this may be the first call by a
** a new thread. The fact that we allocation 20 bytes on a pointer is not very
** important, this just helps to demonstrate that we can have arbitrarily
** complex per-thread data.
*/
thread_data = (libthreaddata_t *) malloc(sizeof(libthreaddata_t));
if (thread_data) {
thread_data->_errno = 0;
thread_data->twentybytes = malloc(20);
if (!thread_data->twentybytes) {
free(thread_data);
thread_data = (libthreaddata_t *) NULL;
err = ENOMEM;
}
if ((err = NXKeySetValue(key, thread_data))) {
free(thread_data->twentybytes);
free(thread_data);
thread_data = (libthreaddata_t *) NULL;
}
}
}
}
if (appData)
*appData = app_data;
if (threadData)
*threadData = thread_data;
return err;
}
int DisposeLibraryData
(
void *data
)
{
if (data) {
void *tenbytes = ((libdata_t *) data)->tenbytes;
if (tenbytes)
free(tenbytes);
free(data);
}
return 0;
}
void DisposeThreadData
(
void *data
)
{
if (data) {
void *twentybytes = ((libthreaddata_t *) data)->twentybytes;
if (twentybytes)
free(twentybytes);
free(data);
}
}

View File

@ -1,281 +0,0 @@
###################################################################
#
## Makefile for building libgd tests (NetWare version - gnu make)
## Use: make -f Makefile
##
## Comments to: Guenter Knauf <eflash@gmx.net>
#
###################################################################
# Edit the path below to point to the base of your Novell NDK.
ifndef NDKBASE
NDKBASE = c:/novell
endif
LIBGD = ../..
ifndef INSTDIR
INSTDIR = ../libgd-$(LIBGD_VERSION_STR)-bin-nw
endif
# Edit the vars below to change NLM target settings.
TARGETS = gddemo.nlm gdtest.nlm gdtestft.nlm gdtopng.nlm gdcmpgif.nlm
TARGETS += gd2time.nlm gd2togif.nlm gd2topng.nlm gd2copypal.nlm
TARGETS += gifanimtest.nlm giftogd2.nlm pngtogd2.nlm pngtogd.nlm webpng.nlm
TARGETS += annotate.nlm circletexttest.nlm fontsizetest.nlm fontwheeltest.nlm
TARGETS += testac.nlm testtr.nlm
DTARGET = ../libgd.nlm
LTARGET = ../libgd.lib
COPYR = Copyright (C) 1996-2007 Boutell.Com, Inc.
WWW = http://www.libgd.org/
DESCR = libgd $(LIBGD_VERSION_STR) $(subst .def,,$(notdir $@)) - $(WWW)
MTSAFE = YES
STACK = 64000
#SCREEN = NONE
#SCREEN = $(DESCR)
# Comment the line below if you dont want to load protected automatically.
#LDRING = 3
# Comment the line below if you dont want to link the static libgd.lib.
#LSTATIC = 1
ifdef LSTATIC
LDLIBS = $(LTARGET)
else
IMPORTS = @../libgd.imp
MODULES = $(notdir $(DTARGET))
endif
# Edit the var below to point to your lib architecture.
ifndef LIBARCH
LIBARCH = LIBC
endif
# must be equal to DEBUG or NDEBUG
DB = NDEBUG
# DB = DEBUG
# DB = CURLDEBUG
# Optimization: -O<n> or debugging: -g
ifeq ($(DB),NDEBUG)
OPT = -O2
OBJDIR = release
else
OPT = -g
OBJDIR = debug
endif
# Include the version info retrieved from header.
-include $(OBJDIR)/version.inc
# The following line defines your compiler.
ifdef METROWERKS
CC = mwccnlm
else
CC = gcc
endif
YACC = bison -y
CP = cp -afv
# RM = rm -f
# if you want to mark the target as MTSAFE you will need a tool for
# generating the xdc data for the linker; here's a minimal tool:
# http://www.gknw.net/development/prgtools/mkxdc.zip
MPKXDC = mkxdc
# Global flags for all compilers
CFLAGS = $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
ifeq ($(CC),mwccnlm)
LD = mwldnlm
#LDFLAGS = -nostdlib $(PRELUDE) $(LDLIBS) $(<:.def=.o) -o $@ -commandfile
LDFLAGS = -nostdlib $(PRELUDE) $(OBJSCR) $(LDLIBS) $(OBJDIR)/$(basename $@).o -o $@ -commandfile
AR = mwldnlm
ARFLAGS = -type library -w nocmdline $(OBJS) -o
CFLAGS += -msgstyle gcc -gccinc -inline off -opt nointrinsics -proc 586
CFLAGS += -relax_pointers
#CFLAGS += -w on
ifeq ($(LIBARCH),LIBC)
PRELUDE = $(SDK_LIBC)/imports/libcpre.o
CFLAGS += -align 4
else
PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
# CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
CFLAGS += -align 1
endif
else
LD = nlmconv
LDFLAGS = -T
AR = ar
ARFLAGS = -cq
CFLAGS += -fno-builtin -fpcc-struct-return -fno-strict-aliasing
CFLAGS += -Wall -Wno-unused #-Wno-format # -pedantic
ifeq ($(LIBARCH),LIBC)
PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
else
PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
endif
endif
NDK_ROOT = $(NDKBASE)/ndk
SDK_CLIB = $(NDK_ROOT)/nwsdk
SDK_LIBC = $(NDK_ROOT)/libc
ifeq ($(LIBARCH),LIBC)
INCLUDES += -I$(SDK_LIBC)/include
# INCLUDES += -I$(SDK_LIBC)/include/nks
CFLAGS += -D_POSIX_SOURCE
# CFLAGS += -D__ANSIC__
else
INCLUDES += -I$(SDK_CLIB)/include/nlm
# INCLUDES += -I$(SDK_CLIB)/include
# INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete
endif
CFLAGS += -I. -I.. -I$(LIBGD)
CFLAGS += $(INCLUDES)
ifeq ($(MTSAFE),YES)
XDCOPT = -n
endif
ifeq ($(MTSAFE),NO)
XDCOPT = -u
endif
ifeq ($(findstring linux,$(OSTYPE)),linux)
DL = '
#-include $(NDKBASE)/nlmconv/ncpfs.inc
endif
vpath %.c . .. $(LIBGD)
ifdef SCREEN
ifneq ($(SCREEN),NONE)
OBJSCR = $(OBJDIR)/keepscreen.o
endif
endif
.PHONY: all prebuild dist install clean
.PRECIOUS: $(OBJDIR)/%.o $(OBJDIR)/%.def $(OBJDIR)/%.xdc $(LTARGET) $(DTARGET)
all: prebuild $(TARGETS)
prebuild: $(OBJDIR) $(OBJDIR)/version.inc
ifdef LSTATIC
$(MAKE) -C ../ -f Makefile lib
else
$(MAKE) -C ../ -f Makefile nlm
endif
dist: all
-$(RM) -r $(OBJDIR)
install: $(INSTDIR) all
@$(CP) *.nlm $(INSTDIR)
@$(CP) ../CHANGES $(INSTDIR)
@$(CP) ../COPYING $(INSTDIR)
@$(CP) ../README $(INSTDIR)
@$(CP) ../RELEASE-NOTES $(INSTDIR)
clean:
-$(RM) -r $(OBJDIR)
-$(RM) $(TARGETS)
clean-all: clean
-$(MAKE) -C ../ -f Makefile clean
%.lib: $(OBJS)
@echo Creating $@
@-$(RM) $@
@$(AR) $(ARFLAGS) $@ $^
%.nlm: $(OBJDIR)/%.def $(OBJDIR)/%.o $(OBJDIR)/%.xdc $(OBJSCR) $(LDLIBS)
@echo Linking $@
@-$(RM) $@
@$(LD) $(LDFLAGS) $<
$(INSTDIR):
@mkdir $(INSTDIR)
$(OBJDIR):
@mkdir $(OBJDIR)
$(OBJDIR)/%.o: %.c
# @echo Compiling $<
$(CC) $(CFLAGS) -c $< -o $@
$(OBJDIR)/version.inc: ../../configure.ac $(OBJDIR)
@echo Creating $@
@awk -f ../get_ver.awk $< > $@
$(OBJDIR)/%.xdc: Makefile
@echo Creating $@
@$(MPKXDC) $(XDCOPT) $@
$(OBJDIR)/%.def: Makefile
@echo Creating $@
@echo $(DL)# DEF file for linking with $(LD)$(DL) > $@
@echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
@echo $(DL)# All your changes will be lost!!$(DL) >> $@
@echo $(DL)#$(DL) >> $@
@echo $(DL)copyright "$(COPYR)"$(DL) >> $@
@echo $(DL)description "$(DESCR)"$(DL) >> $@
@echo $(DL)version $(LIBGD_VERSION)$(DL) >> $@
ifdef NLMTYPE
@echo $(DL)type $(NLMTYPE)$(DL) >> $@
endif
ifdef STACK
@echo $(DL)stack $(STACK)$(DL) >> $@
endif
ifdef SCREEN
@echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
else
@echo $(DL)screenname "DEFAULT"$(DL) >> $@
endif
ifeq ($(DB),DEBUG)
@echo $(DL)debug$(DL) >> $@
endif
@echo $(DL)threadname "$(subst .def,,$(notdir $@))"$(DL) >> $@
ifdef XDCOPT
@echo $(DL)xdcdata $(@:.def=.xdc)$(DL) >> $@
endif
ifeq ($(LDRING),0)
@echo $(DL)flag_on 16$(DL) >> $@
endif
ifeq ($(LDRING),3)
@echo $(DL)flag_on 512$(DL) >> $@
endif
@echo $(DL)flag_on 64$(DL) >> $@
ifeq ($(LIBARCH),CLIB)
@echo $(DL)start _Prelude$(DL) >> $@
@echo $(DL)exit _Stop$(DL) >> $@
@echo $(DL)import @$(SDK_CLIB)/imports/clib.imp$(DL) >> $@
@echo $(DL)import @$(SDK_CLIB)/imports/threads.imp$(DL) >> $@
@echo $(DL)import @$(SDK_CLIB)/imports/nlmlib.imp$(DL) >> $@
@echo $(DL)module clib$(DL) >> $@
else
@echo $(DL)pseudopreemption$(DL) >> $@
@echo $(DL)start _LibCPrelude$(DL) >> $@
@echo $(DL)exit _LibCPostlude$(DL) >> $@
@echo $(DL)check _LibCCheckUnload$(DL) >> $@
@echo $(DL)import @$(SDK_LIBC)/imports/libc.imp$(DL) >> $@
@echo $(DL)import @$(SDK_LIBC)/imports/netware.imp$(DL) >> $@
@echo $(DL)module libc$(DL) >> $@
endif
ifdef MODULES
@echo $(DL)module $(MODULES)$(DL) >> $@
endif
ifdef EXPORTS
@echo $(DL)export $(EXPORTS)$(DL) >> $@
endif
ifdef IMPORTS
@echo $(DL)import $(IMPORTS)$(DL) >> $@
endif
ifeq ($(LD),nlmconv)
@echo $(DL)input $(PRELUDE)$(DL) >> $@
@echo $(DL)input $(OBJSCR)$(DL) >> $@
@echo $(DL)input $(@:.def=.o)$(DL) >> $@
ifdef LSTATIC
@echo $(DL)input $(LTARGET)$(DL) >> $@
endif
@echo $(DL)output $(notdir $(@:.def=.nlm))$(DL) >> $@
endif

View File

@ -72,9 +72,7 @@ static char *font_path(char **fontpath, char *name_list);
*/
#ifndef DEFAULT_FONTPATH
# ifdef NETWARE
# define DEFAULT_FONTPATH "sys:/java/nwgfx/lib/x11/fonts/ttf;."
# elif defined(_WIN32)
# if defined(_WIN32)
# define DEFAULT_FONTPATH "C:\\WINDOWS\\FONTS;C:\\WINNT\\FONTS"
# elif defined(__APPLE__) || (defined(__MWERKS__) && defined(macintosh))
# define DEFAULT_FONTPATH "/usr/share/fonts/truetype:/System/Library/Fonts:/Library/Fonts"
@ -85,7 +83,7 @@ static char *font_path(char **fontpath, char *name_list);
#endif
#ifndef PATHSEPARATOR
# if defined(NETWARE) || defined(_WIN32)
# if defined(_WIN32)
# define PATHSEPARATOR ";"
# else
# define PATHSEPARATOR ":"
@ -1834,14 +1832,9 @@ static char * font_path(char **fontpath, char *name_list)
return "could not alloc full path of font";
}
/* if name is an absolute or relative pathname then test directly */
#ifdef NETWARE
/* netware uses the format "volume:/path" or the standard "/path" */
if (name[0] != 0 && (strstr(name, ":/") || name[0] == '/'))
#else
if (strchr (name, '/')
|| (name[0] != 0 && name[1] == ':'
&& (name[2] == '/' || name[2] == '\\')))
#endif
{
sprintf (fullname, "%s", name);
if (access (fullname, R_OK) == 0) {