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
parent
ac16bdf2d4
commit
e6bb110663
|
@ -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
|
||||
|
|
16
configure.ac
16
configure.ac
|
@ -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)
|
||||
|
|
|
@ -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)
|
|
@ -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 ",";
|
||||
}
|
||||
}
|
|
@ -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 "";
|
||||
}
|
|
@ -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();
|
||||
}
|
287
netware/nwlibc.c
287
netware/nwlibc.c
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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
|
11
src/gdft.c
11
src/gdft.c
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue