1#  Copyright (C) 2001-2006 Artifex Software, Inc.
2#  All Rights Reserved.
3#
4#  This software is provided AS-IS with no warranty, either express or
5#  implied.
6#
7#  This software is distributed under license and may not be copied, modified
8#  or distributed except as expressly authorized under the terms of that
9#  license.  Refer to licensing information at http://www.artifex.com/
10#  or contact Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134,
11#  San Rafael, CA  94903, U.S.A., +1(415)492-9861, for further information.
12#
13# $Id: ijs.mak 8022 2007-06-05 22:23:38Z giles $
14# makefile for ijs client library code.
15# Users of this makefile must define the following:
16#	IJSSRCDIR - the icclib source directory
17#	IJSEXECTYPE - which process control code to use
18#		in spawning the server. currently
19#		'unix' and 'win' are supported.
20#	BINDIR - where to put the executible examples
21
22# This partial makefile compiles the IJS client library for use in
23# Ghostscript.
24
25IJSSRC=$(IJSSRCDIR)$(D)
26IJSGEN=$(IJSGENDIR)$(D)
27IJSOBJ=$(IJSOBJDIR)$(D)
28IJSO_=$(O_)$(IJSOBJ)
29
30# We need I_, _I_, and _I because the OpenVMS compiler uses different
31# syntax from other compilers.
32# IJSI_ and IJSF_ are defined in gs.mak (why?)
33# as are IJSGENDIR and IJSOBJDIR above.
34IJS_INCL=$(I_)$(IJSI_)$(_I)
35IJS_CCFLAGS=$(IJS_INCL) $(IJSF_)
36IJS_CC=$(CC_) $(IJS_CCFLAGS)
37
38# Define the name of this makefile.
39IJS_MAK=$(GLSRC)ijs.mak
40
41ijs.clean : ijs.config-clean ijs.clean-not-config-clean
42
43### WRONG.  MUST DELETE OBJ AND GEN FILES SELECTIVELY.
44ijs.clean-not-config-clean : $(ECHOGS_XE)
45#	echo $(IJSSRC) $(IJSGEN) $(IJSOBJ) $(IJSO_)
46	$(EXP)$(ECHOGS_XE) $(IJSSRC) $(IJSGEN) $(IJSOBJ) $(IJSO_)
47	$(RM_) $(IJSOBJ)*.$(OBJ)
48
49ijs.config-clean :
50	$(RMN_) $(IJSGEN)ijs*.dev
51
52IJSDEP=$(AK)
53
54ijslib_=$(IJSOBJ)ijs.$(OBJ) $(IJSOBJ)ijs_server.$(OBJ) \
55    $(IJSOBJ)ijs_client.$(OBJ) $(IJSOBJ)ijs_exec_$(IJSEXECTYPE).$(OBJ)
56$(IJSGEN)ijslib.dev : $(IJS_MAK) $(ECHOGS_XE) $(ijslib_)
57	$(SETMOD) $(IJSGEN)ijslib $(ijslib_)
58
59ijs_h=$(IJSSRC)ijs.h
60
61ijs_client_h=$(IJSSRC)$(D)ijs_client.h
62ijs_server_h=$(IJSSRC)$(D)ijs_server.h
63
64$(IJSOBJ)ijs.$(OBJ) : $(ECHOGS_XE) $(IJSSRC)ijs.c $(IJSDEP) $(ijs_h)
65#	echo $(IJS_CCFLAGS)
66	$(EXP)$(ECHOGS_XE) $(IJS_CCFLAGS)
67	$(IJS_CC) $(IJSO_)ijs.$(OBJ) $(C_) $(IJSSRC)ijs.c
68
69$(IJSOBJ)ijs_client.$(OBJ) : $(IJSSRC)ijs_client.c \
70    $(IJSDEP) $(ijs_h) $(ijs_client_h)
71	$(IJS_CC) $(IJSO_)ijs_client.$(OBJ) $(C_) $(IJSSRC)ijs_client.c
72
73$(IJSOBJ)ijs_server.$(OBJ) : $(IJSSRC)ijs_server.c \
74    $(IJSDEP) $(ijs_h) $(ijs_server_h)
75	$(IJS_CC) $(IJSO_)ijs_server.$(OBJ) $(C_) $(IJSSRC)ijs_server.c
76
77$(IJSOBJ)ijs_exec_unix.$(OBJ) : $(IJSSRC)ijs_exec_unix.c \
78    $(IJSDEP) $(ijs_h) $(ijs_client_h)
79	$(IJS_CC) $(IJSO_)ijs_exec_unix.$(OBJ) $(C_) $(IJSSRC)ijs_exec_unix.c
80
81$(IJSOBJ)ijs_exec_win.$(OBJ) : $(IJSSRC)ijs_exec_win.c \
82    $(IJSDEP) $(ijs_h) $(ijs_client_h)
83# This can't be compiled with /Za because it needs windows.h.
84	$(CC_WX) $(IJS_CCFLAGS) $(IJSO_)ijs_exec_win.$(OBJ) $(C_) $(IJSSRC)ijs_exec_win.c
85
86
87#
88# rules for the example client/server implementation
89# FIXME: linking not portable (or per policy!)
90
91ijs_server_example_=$(BINDIR)$(D)ijs_server_example
92
93ijs_client_example_=$(BINDIR)$(D)ijs_client_example
94
95
96ijs_examples_=$(ijs_server_example_) $(ijs_client_example_)
97$(IJSGEN)ijs_examples.dev : $(IJS_MAK) $(ECHOGS_XE) \
98    $(ijs_examples_) $(ijslib_)
99	$(SETMOD) $(IJSGEN)ijs_examples $(ijs_examples_)
100	$(ADDMOD) $(IJSGEN)ijs_examples $(ijslib_)
101
102$(IJSOBJ)ijs_client_example.$(OBJ) : $(IJSSRC)ijs_client_example.c \
103    $(IJSDEP) $(ijs_h) $(ijs_client_h)
104	$(IJS_CC) $(IJSO_)ijs_client_example.$(OBJ) $(C_) $(IJSSRC)ijs_client_example.c
105
106$(BINDIR)$(D)ijs_client_example : $(IJSOBJ)ijs_client_example.$(OBJ) $(ijslib_)
107	$(IJS_CC) -o bin/ijs_client_example $(IJSOBJ)ijs_client_example.$(OBJ) $(ijslib_)
108
109$(IJSOBJ)ijs_server_example.$(OBJ) : $(IJSSRC)ijs_server_example.c \
110    $(IJSDEP) $(ijs_h) $(ijs_server_h)
111	$(IJS_CC) $(IJSO_)ijs_server_example.$(OBJ) $(C_) $(IJSSRC)ijs_server_example.c
112
113$(BINDIR)$(D)ijs_server_example : $(IJSOBJ)ijs_server_example.$(OBJ) $(ijslib_)
114	$(IJS_CC) -o bin/ijs_server_example $(IJSOBJ)ijs_server_example.$(OBJ) $(ijslib_)
115