1 |
# ASCEND lib Directory Makefile |
2 |
# Makefile for building dynamically loaded binary relations and other misc |
3 |
# things where we assume there is no source tree available and no |
4 |
# Makefile.Rules or ConfigAscend. |
5 |
# Mark Thomas |
6 |
# March 18, 1997 |
7 |
# $Date: 1998/06/18 18:45:42 $ |
8 |
# $Revision: 1.10 $ |
9 |
# $Author: mthomas $ |
10 |
# $Source: /afs/cs.cmu.edu/project/ascend/Repository/ascend4/lib/Makefile.in,v $ |
11 |
# |
12 |
|
13 |
|
14 |
SHELL = /bin/sh |
15 |
builddir = .. |
16 |
srcdir = @fullpathsrcdir@/../generic/lib |
17 |
VPATH := @fullpathsrcdir@/../generic/lib |
18 |
|
19 |
|
20 |
|
21 |
# The next variables are the primary executables and/or libraries that |
22 |
# this makefile is responsible for, and the default target of this |
23 |
# makefile. |
24 |
|
25 |
EXECUTABLE = |
26 |
|
27 |
LIBRARY = none |
28 |
|
29 |
|
30 |
default: btprolog.h Makefile.bt |
31 |
|
32 |
|
33 |
|
34 |
# Defines and Includes that are specific to this directory |
35 |
|
36 |
DIR_SPECIFIC_DEFS = |
37 |
DIR_SPECIFIC_INCS = |
38 |
|
39 |
|
40 |
|
41 |
# The next variables list the source files (EXEC_SCRS) to compile |
42 |
# into the object files (EXEC_OBJS) that are linked with the |
43 |
# library files (EXEC_LIBS) to make EXECUTABLE |
44 |
|
45 |
EXEC_SRCS = |
46 |
|
47 |
EXEC_OBJS = |
48 |
|
49 |
EXEC_LIBS = |
50 |
|
51 |
|
52 |
|
53 |
# The next variables list the source files (LIB_SCRS) to compile |
54 |
# into the object files (LIB_OBJS) that are combined to make LIBRARY |
55 |
|
56 |
LIB_SRCS = |
57 |
|
58 |
LIB_OBJS = |
59 |
|
60 |
|
61 |
|
62 |
# The global makefile macros (ConfigAscend) and global rules (Makefile.Rules) |
63 |
# |
64 |
include $(builddir)/ConfigAscend |
65 |
include $(builddir)/Makefile.Rules |
66 |
|
67 |
|
68 |
|
69 |
# File specific rules |
70 |
|
71 |
# Copy the bintoken header file from the compiler directory |
72 |
|
73 |
ascConfig.h: $(srcdir)/../utilities/ascConfig.h |
74 |
$(CP) $^ $@ |
75 |
|
76 |
%.h: $(srcdir)/../compiler/%.h |
77 |
$(CP) $^ $@ |
78 |
|
79 |
# Build a Makfile suitable for installing |
80 |
|
81 |
Makefile.bt: Makefile ../ConfigAscend |
82 |
$(RM) $@ |
83 |
@$(ECHO) '# Makefile for ASCEND bin-tokens' >$@ |
84 |
@$(ECHO) '#' >>$@ |
85 |
@$(ECHO) '# This makefile is generated by ASCENDs make install' >>$@ |
86 |
@$(ECHO) '# It is used by the ASCEND compiler to build a shared' >>$@ |
87 |
@$(ECHO) '# object that is loaded into ASCEND' >>$@ |
88 |
@$(ECHO) '' >>$@ |
89 |
@$(ECHO) '# default C compiler.' >>$@ |
90 |
@$(ECHO) 'CC = $(CC)' >>$@ |
91 |
@$(ECHO) '' >>$@ |
92 |
@$(ECHO) '# unix, at least' >>$@ |
93 |
@$(ECHO) 'CP = $(CP)' >>$@ |
94 |
@$(ECHO) '' >>$@ |
95 |
@$(ECHO) '# caller is assumed to pass to make on the command line' >>$@ |
96 |
@$(ECHO) '#-RM=/bin/rm (or some equivalent file deletion command)' >>$@ |
97 |
@$(ECHO) '#-BTINCLUDES=(the absolute path of this directory)' >>$@ |
98 |
@$(ECHO) '' >>$@ |
99 |
@$(ECHO) '# Flags to pass to the C compiler when compiling' >>$@ |
100 |
@$(ECHO) '# the components of a shared library' >>$@ |
101 |
@$(ECHO) 'SHLIB_CFLAGS = $(SHLIB_CFLAGS)' >>$@ |
102 |
@$(ECHO) '' >>$@ |
103 |
@$(ECHO) '# Base command to use to combine object files into' >>$@ |
104 |
@$(ECHO) '# a shared library' >>$@ |
105 |
@$(ECHO) 'SHLIB_LD = $(SHLIB_LD)' >>$@ |
106 |
@$(ECHO) '' >>$@ |
107 |
@$(ECHO) '# Dependent libraries for the linker to scan when' >>$@ |
108 |
@$(ECHO) '# creating a shared library' >>$@ |
109 |
@$(ECHO) 'SHLIB_LD_LIBS = $(SHLIB_LD_LIBS)' >>$@ |
110 |
@$(ECHO) '' >>$@ |
111 |
@$(ECHO) '# Suffix to use for the names of dynamically' >>$@ |
112 |
@$(ECHO) '# loadable objects' >>$@ |
113 |
@$(ECHO) 'SHLIB_SUFFIX = $(SHLIB_SUFFIX)' >>$@ |
114 |
@$(ECHO) '' >>$@ |
115 |
$(SED) -ne '/^###START_COPY_ME/,/^###END_COPY_ME/p' Makefile >>$@ |
116 |
|
117 |
|
118 |
# The following is the target to make the dynamically loadable object |
119 |
# and the required flags. When we ``make install'' everything |
120 |
# between the START_COPY_ME and END_COPY_ME lines will be put into |
121 |
# the generated Makefile |
122 |
|
123 |
# Do not edit the next line --- it is special |
124 |
###START_COPY_ME |
125 |
|
126 |
# Flags for building routine and simple generated C code. |
127 |
# Generally, -O > -O2 is a bad idea because it messes with |
128 |
# IEEE 754 standards and we may not get the expected trap |
129 |
# behavior. |
130 |
BTCFLAGS = -O -c |
131 |
|
132 |
$(BTTARGET) _dummy_target: $(BTTARGET).c |
133 |
-$(RM) $(BTTARGET).o $(BTTARGET)$(SHLIB_SUFFIX) |
134 |
$(CC) $(BTINCLUDES) $(SHLIB_CFLAGS) $(BTCFLAGS) \ |
135 |
$(BTTARGET).c -o $(BTTARGET).o |
136 |
$(SHLIB_LD) $(SHLIB_LDFLAGS) \ |
137 |
-o $(BTTARGET)$(SHLIB_SUFFIX) $(BTTARGET).o |
138 |
|
139 |
###END_COPY_ME |
140 |
# Do not edit the previous line --- it is special |
141 |
|
142 |
|
143 |
|
144 |
# Files to install |
145 |
|
146 |
LIB_DIR_FILES = Makefile.bt btprolog.h instance_enum.h ascConfig.h |
147 |
|
148 |
install-binaries:: $(LIB_DIR_FILES) |
149 |
@if test ! -d $(LIB_DIR) ; then \ |
150 |
echo Making directory $(LIB_DIR) ; \ |
151 |
mkdir -p $(LIB_DIR) ; \ |
152 |
fi |
153 |
@for i in $(LIB_DIR_FILES) /dev/null ; do \ |
154 |
if $(CMP) -s $$i $(LIB_DIR)/$$i ; then \ |
155 |
echo "Skipping $$i (up to date)" ; \ |
156 |
elif test $$i != "/dev/null" ; then \ |
157 |
echo "Installing $$i --> $(LIB_DIR)" ; \ |
158 |
$(INSTALL_DATA) $$i $(LIB_DIR) ; \ |
159 |
fi ; \ |
160 |
done |
161 |
|
162 |
uninstall-binaries:: |
163 |
@for i in $(LIB_DIR_FILES) /dev/null ; do \ |
164 |
if test -f $(LIB_DIR)/$$i ; then \ |
165 |
echo Removing $(LIB_DIR)/$$i ; \ |
166 |
$(RM) $(LIB_DIR)/$$i ; \ |
167 |
fi ; \ |
168 |
done |
169 |
|
170 |
|
171 |
|
172 |
# Files, in addition to the default, to remove when we `make clean' |
173 |
|
174 |
clean:: |
175 |
-$(RM) $(LIB_DIR_FILES) *.so *.sl |
176 |
|
177 |
|
178 |
# .PHONY: btprolog.h |
179 |
|
180 |
# DO NOT DELETE THIS LINE -- g++dep uses it. |
181 |
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. |
182 |
|
183 |
|
184 |
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY |