2 # Makefile to compile and install the SUIF compiler
5 # default variables -- these may be overridden
9 SUBDIRS
= basesuif simplesuif suifbuilder baseparsuif fortback suifcookbook suifps suifcallgraph suifvectorizer convertsuif1.1
.0to1.1
.1 reduce suifvisitor cfg graph ipaf fortparse fort2suif fortfront para dave alias_interface speculate cparallel aa checkfort color decomp dlprintsuif gaopt inline mdopt popt preip promotescalar reaching suex suifvbrowser addsync padopt wilbyr wilbyr_lib verisuif
10 SUB_PACKAGES
= basesuif
14 include $(SUIFHOME
)/Makefile.rules
15 # read the standard definitions
16 include $(SUIFHOME
)/Makefile.defs
18 MACHINCL
= $(MACHDIR
)/include
20 source
: Makefile.local Makefile.std Makefile.sub Makefile.rules Makefile.defs \
25 @echo
" Setting up directory structures for SUIF."
27 @
# create the include directory
28 @
# create the machine-specific directories
29 @if
test ! -d
$(MACHDIR
); then mkdir
$(MACHDIR
); else : ; fi
30 @if
test ! -d
$(INCLDIR
); then mkdir
$(INCLDIR
); else : ; fi
31 @if
test ! -d
$(BINDIR
); then mkdir
$(BINDIR
); else : ; fi
32 @if
test ! -d
$(LIBDIR
); then mkdir
$(LIBDIR
); else : ; fi
33 @if
test ! -d
$(SODIR
); then mkdir
$(SODIR
); else : ; fi
34 @if
test ! -d
$(MANDIR
); then mkdir
$(MANDIR
); else : ; fi
35 @if
test ! -d
$(HTMLDIR
); then mkdir
$(HTMLDIR
); else : ; fi
36 @if
test ! -d
$(DOCDIR
); then mkdir
$(DOCDIR
); else : ; fi
37 @if
test ! -d
$(AUTOINITDIR
); then mkdir
$(AUTOINITDIR
); else : ; fi
38 @if
test ! -d
$(VERDATADIR
); then mkdir
$(VERDATADIR
); else : ; fi
39 @if
test ! -d
$(TCLDIR
); then mkdir
$(TCLDIR
); else : ; fi
40 @if
test ! -d
$(SCRIPTDIR
); then mkdir
$(SCRIPTDIR
); else : ; fi
41 @if
test ! -d
$(MACHINCL
); then mkdir
$(MACHINCL
); else : ; fi
42 @
# put the FORTRAN header file in the MACHINCL directory
43 @
# note: other files (e.g. varargs.h) need to go there, too
44 @
# rm -f $(MACHINCL)/sf2c.h
45 @
# ( cd $(MACHINCL); ln -s ../../include/sf2c.h . )
47 @
# There's a chicken-and-egg problem with the basesuif/scripts
48 @
# package: it needs to be installed for packages to install. So
49 @
# we short circuit it by manually installing the scripts here.
50 @if
test -d src
/basesuif
/scripts
; then \
51 (cd src
/basesuif
/scripts
; \
53 rm -f
$(BINDIR
)/$${file}; \
54 cp
$${file} $(BINDIR
); \
55 chmod
775 $(BINDIR
)/$${file}; \
60 @
rm -f
$(BINDIR
)/Makefile
62 reinstall
: show-reinstall
66 show-install show-reinstall-bin show-reinstall
: source
67 @if
test ! -d
$(BINDIR
); then \
69 echo
" The directory structure needed for" \
70 "SUIF has not yet been set up." 1>&2; \
71 echo
" You will have to run \`\`gmake setup''" \
72 "before attempting to install" 1>&2; \
73 echo
" the system. Please see the README" \
74 "file for more critical" 1>&2; \
75 echo
" information on setup and installation." 1>&2; \
81 @if
test ""$(NIGHTLY
) = "" ; then \
83 echo
" The full SUIF compiler system is now being" \
84 "installed. To make it"; \
85 echo
" easier to tell whether there are installation" \
86 "problems and where"; \
87 echo
" they occurred, each subpackage will be installed" \
89 echo
" the full installation details will be recorded" \
91 echo
" "$(LOGFILE
)" in each subdirectory. As each" \
93 echo
" completed, a single line will be printed here" \
95 echo
" success or failure of that particular" \
101 @if
test ""$(NIGHTLY_STATUS
) = master
; then \
102 rm -f
$(NIGHTLYREADYDIR
)/* ; \
106 @
export SUB_PACKAGES
; SUB_PACKAGES
= ; \
107 export PACKAGE_NAME
; PACKAGE_NAME
= ; \
108 export STATIC_LIBNAME
; STATIC_LIBNAME
= ; \
109 export SHARED_LIBNAME
; SHARED_LIBNAME
= ; \
110 export LIBNAME_SET_A
; LIBNAME_SET_A
= ; \
111 export LIBNAME_SET_B
; LIBNAME_SET_B
= ; \
112 export LIBNAME_SET
; LIBNAME_SET
= ; \
113 export SUB_PACKAGES
; SUB_PACKAGES
= ; \
114 for
dir in
$(SUBDIRS
); do \
115 if
test ""$(NIGHTLY_STATUS
) = slave
; then \
116 file_stall
-silent
-name
$$dir $(NIGHTLYREADYDIR
)/$$dir; \
118 if
test -d
$(SUIFHOME
)/RCS
/$$dir ; then \
119 rm -rf
$(WORKDIR
)/$$dir; \
120 if
test ! -d
$(WORKDIR
)/$$dir; then \
121 mkdir
$(WORKDIR
)/$$dir; \
122 ln
-s
$(SUIFHOME
)/RCS
/$$dir $(WORKDIR
)/$$dir/RCS
; \
123 (cd
$(WORKDIR
)/$$dir; co Makefile
> /dev
/null
2>&1); \
126 if
test -d
$(WORKDIR
)/$$dir; then \
127 ( cd
$(WORKDIR
)/$$dir; \
128 $(MAKE
) --no-print-directory
$@
; \
129 $(MAKE
) --no-print-directory
clean 1>> $(LOGFILE
) 2>&1 ); \
131 if
test ""$(NIGHTLY_STATUS
) = master
; then \
132 touch
$(NIGHTLYREADYDIR
)/$$dir; \
138 install-noisy
: source
139 @
export SUB_PACKAGES
; SUB_PACKAGES
= ; \
140 export PACKAGE_NAME
; PACKAGE_NAME
= ; \
141 export STATIC_LIBNAME
; STATIC_LIBNAME
= ; \
142 export SHARED_LIBNAME
; SHARED_LIBNAME
= ; \
143 export LIBNAME_SET_A
; LIBNAME_SET_A
= ; \
144 export LIBNAME_SET_B
; LIBNAME_SET_B
= ; \
145 export LIBNAME_SET
; LIBNAME_SET
= ; \
146 export SUB_PACKAGES
; SUB_PACKAGES
= ; \
147 for
dir in
$(SUBDIRS
); do \
148 if
test -d
$(WORKDIR
)/$$dir; then \
149 ( cd
$(WORKDIR
)/$$dir; \
150 SUB_PACKAGES
= $(MAKE
) --no-print-directory
install ; \
151 $(MAKE
) --no-print-directory
clean ); \
156 @ver_assert_ver_does_not_exist
$(VERSION
)
157 @ver_build_current
$(VERSION
)
160 @
export SUB_PACKAGES
; SUB_PACKAGES
= ; \
161 export PACKAGE_NAME
; PACKAGE_NAME
= ; \
162 export STATIC_LIBNAME
; STATIC_LIBNAME
= ; \
163 export SHARED_LIBNAME
; SHARED_LIBNAME
= ; \
164 export LIBNAME_SET_A
; LIBNAME_SET_A
= ; \
165 export LIBNAME_SET_B
; LIBNAME_SET_B
= ; \
166 export LIBNAME_SET
; LIBNAME_SET
= ; \
167 export SUB_PACKAGES
; SUB_PACKAGES
= ; \
168 for
dir in
$(SUBDIRS
); do \
169 if
test -d
$(WORKDIR
)/$$dir; then \
170 ( cd
$(WORKDIR
)/$$dir; $(MAKE
) --no-print-directory
); \
175 @
-export SUB_PACKAGES
; SUB_PACKAGES
= ; \
176 export PACKAGE_NAME
; PACKAGE_NAME
= ; \
177 export STATIC_LIBNAME
; STATIC_LIBNAME
= ; \
178 export SHARED_LIBNAME
; SHARED_LIBNAME
= ; \
179 export LIBNAME_SET_A
; LIBNAME_SET_A
= ; \
180 export LIBNAME_SET_B
; LIBNAME_SET_B
= ; \
181 export LIBNAME_SET
; LIBNAME_SET
= ; \
182 export SUB_PACKAGES
; SUB_PACKAGES
= ; \
183 for
dir in
$(SUBDIRS
); do \
184 if
test -d
$(WORKDIR
)/$$dir; then \
185 ( cd
$(WORKDIR
)/$$dir; \
186 $(MAKE
) --no-print-directory
clean ); \
191 suif-recursive-make clean-rcs-links
192 if
test -d RCS
; then \
193 rm RCS
> /dev
/null
2>&1 ; \
194 echo
> /dev
/null
2>&1 ; \