1# Copyright (C) 2001, Aladdin Enterprises. All rights reserved. 2# 3# This software is provided AS-IS with no warranty, either express or 4# implied. 5# 6# This software is distributed under license and may not be copied, 7# modified or distributed except as expressly authorized under the terms 8# of the license contained in the file LICENSE in this distribution. 9# 10# For more information about licensing, please refer to 11# http://www.ghostscript.com/licensing/. For information on 12# commercial licensing, go to http://www.artifex.com/licensing/ or 13# contact Artifex Software, Inc., 101 Lucas Valley Road #110, 14# San Rafael, CA 94903, U.S.A., +1(415)492-9861. 15 16# $Id: unix-dll.mak,v 1.10 2003/09/24 13:41:20 giles Exp $ 17# Partial makefile for Unix shared object target 18 19# Useful make commands: 20# make so make ghostscript as a shared object 21# make sodebug make debug ghostscript as a shared object 22# make soinstall install shared object ghostscript 23# make soclean remove build files 24# 25# If you want to test the executable without installing: 26# export LD_LIBRARY_PATH=/insert-path-here/sobin 27# export GS_LIB=/insert-path-here/lib 28 29# Location for building shared object 30SOOBJRELDIR=../soobj 31SOBINRELDIR=../sobin 32 33# ------------------- Ghostscript shared object --------------------------- # 34 35# Shared object names 36 37# simple loader (no support for display device) 38GSSOC_XENAME=$(GS)c$(XE) 39GSSOC_XE=$(BINDIR)/$(GSSOC_XENAME) 40GSSOC=$(BINDIR)/$(SOBINRELDIR)/$(GSSOC_XENAME) 41 42# loader suporting display device using Gtk+ 43GSSOX_XENAME=$(GS)x$(XE) 44GSSOX_XE=$(BINDIR)/$(GSSOX_XENAME) 45GSSOX=$(BINDIR)/$(SOBINRELDIR)/$(GSSOX_XENAME) 46 47# shared library 48GS_SONAME=lib$(GS).so 49GS_SONAME_MAJOR=$(GS_SONAME).$(GS_VERSION_MAJOR) 50GS_SONAME_MAJOR_MINOR= $(GS_SONAME).$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR) 51GS_SO=$(BINDIR)/$(GS_SONAME) 52GS_SO_MAJOR=$(GS_SO).$(GS_VERSION_MAJOR) 53GS_SO_MAJOR_MINOR=$(GS_SO_MAJOR).$(GS_VERSION_MINOR) 54 55# Shared object is built by redefining GS_XE in a recursive make. 56 57# Create symbolic links to the Ghostscript interpreter library 58 59$(GS_SO): $(GS_SO_MAJOR) 60 $(RM_) $(GS_SO) 61 ln -s $(GS_SONAME_MAJOR_MINOR) $(GS_SO) 62 63$(GS_SO_MAJOR): $(GS_SO_MAJOR_MINOR) 64 $(RM_) $(GS_SO_MAJOR) 65 ln -s $(GS_SONAME_MAJOR_MINOR) $(GS_SO_MAJOR) 66 67# Build the small Ghostscript loaders, with Gtk+ and without 68 69$(GSSOX_XE): $(GS_SO) $(GLSRC)dxmain.c 70 $(GLCC) -g `gtk-config --cflags` -o $(GSSOX_XE) $(GLSRC)dxmain.c -L$(BINDIR) -l$(GS) `gtk-config --libs` 71 72$(GSSOC_XE): $(GS_SO) $(GLSRC)dxmainc.c 73 $(GLCC) -g -o $(GSSOC_XE) $(GLSRC)dxmainc.c -L$(BINDIR) -l$(GS) 74 75# ------------------------- Recursive make targets ------------------------- # 76 77SODEFS=LDFLAGS='$(LDFLAGS) $(CFLAGS_SO) -shared -Wl,-soname=$(GS_SONAME_MAJOR)'\ 78 GS_XE=$(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR_MINOR)\ 79 STDIO_IMPLEMENTATION=c\ 80 DISPLAY_DEV=$(DD)$(SOOBJRELDIR)/display.dev\ 81 BINDIR=$(BINDIR)/$(SOBINRELDIR)\ 82 GLGENDIR=$(GLGENDIR)/$(SOOBJRELDIR)\ 83 GLOBJDIR=$(GLOBJDIR)/$(SOOBJRELDIR)\ 84 PSGENDIR=$(PSGENDIR)/$(SOOBJRELDIR)\ 85 PSOBJDIR=$(PSOBJDIR)/$(SOOBJRELDIR) 86 87 88# Normal shared object 89so: SODIRS 90 $(MAKE) $(SODEFS) CFLAGS='$(CFLAGS_STANDARD) $(CFLAGS_SO) $(GCFLAGS) $(XCFLAGS)' prefix=$(prefix) $(GSSOC) $(GSSOX) 91 92# Debug shared object 93# Note that this is in the same directory as the normal shared 94# object, so you will need to use 'make soclean', 'make sodebug' 95sodebug: SODIRS 96 $(MAKE) $(SODEFS) GENOPT='-DDEBUG' CFLAGS='$(CFLAGS_DEBUG) $(CFLAGS_SO) $(GCFLAGS) $(XCFLAGS)' $(GSSOC) $(GSSOX) 97 98install-so: so 99 -mkdir -p $(prefix) 100 -mkdir -p $(datadir) 101 -mkdir -p $(gsdir) 102 -mkdir -p $(gsdatadir) 103 -mkdir -p $(bindir) 104 -mkdir -p $(libdir) 105 $(INSTALL_PROGRAM) $(GSSOC) $(bindir)/$(GSSOC_XENAME) 106 $(INSTALL_PROGRAM) $(GSSOX) $(bindir)/$(GSSOX_XENAME) 107 $(INSTALL_PROGRAM) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME_MAJOR_MINOR) 108 $(RM_) $(libdir)/$(GS_SONAME) 109 ln -s $(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME) 110 $(RM_) $(libdir)/$(GS_SONAME_MAJOR) 111 ln -s $(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME_MAJOR) 112 113soinstall: install-so install-scripts install-data 114 115# Make the build directories 116SODIRS: STDDIRS 117 @if test ! -d $(BINDIR)/$(SOBINRELDIR); then mkdir -p $(BINDIR)/$(SOBINRELDIR); fi 118 @if test ! -d $(GLGENDIR)/$(SOOBJRELDIR); then mkdir -p $(GLGENDIR)/$(SOOBJRELDIR); fi 119 @if test ! -d $(GLOBJDIR)/$(SOOBJRELDIR); then mkdir -p $(GLOBJDIR)/$(SOOBJRELDIR); fi 120 @if test ! -d $(PSGENDIR)/$(SOOBJRELDIR); then mkdir -p $(PSGENDIR)/$(SOOBJRELDIR); fi 121 @if test ! -d $(PSOBJDIR)/$(SOOBJRELDIR); then mkdir -p $(PSOBJDIR)/$(SOOBJRELDIR); fi 122 123 124soclean: SODIRS 125 $(MAKE) $(SODEFS) clean 126 $(RM_) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME) 127 $(RM_) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR) 128 $(RM_) $(GSSOC) 129 $(RM_) $(GSSOX) 130 131# End of unix-dll.mak 132