root/juggler/tags/1.0_alpha_04_01/Makefile.in

Revision 519, 32.0 kB (checked in by kevn, 10 years ago)

added glove demo

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 # -----------------------------------------------------------------------------
2 # $Id$
3 #
4 # Base Makefile.in for VR Juggler.  It requires GNU make.
5 # -----------------------------------------------------------------------------
6 # Targets are:
7 #
8 # all             - Build everything.
9 # all-abi         - Build everything using all supported ABIs.
10 # dbg             - Build the debugging, static copy of the libraries.
11 # ddso            - Build the debugging, dynamic shared object version of the
12 #                   libraries.
13 # opt             - Build the optimized, static version of the libraries.
14 # dso             - Build the dynamic shared object version of the libraries.
15 # obj             - Build the object files using the default value for
16 #                   ${OBJDIR}.
17 # gui             - Build the Java-based configuration GUI.
18 #
19 # links           - Define links (for developer use only) that provide
20 #                   functionality allowing the use of the $VJ_BASE_DIR
21 #                   environment variable.
22 # clean-links     - Remove the symlinks created by 'links'.
23 #
24 # static-libs     - Build the static version of the libraries.  This target
25 #                   depends on a correct value for ${LIBDIR} (that does not
26 #                   have a default value).
27 # shared-libs     - Build the dynamic shared version of the libraries.  This
28 #                   target depends on a correct value for ${LIBDIR} (that does
29 #                   not have a default value).
30 #
31 # install-all     - Install all versions of the libraries, all header files,
32 #                   the Data directory, the configuration GUI and the test
33 #                   code.
34 # install-all-abi - Install every ABI possible on the target platform.
35 # install         - Install the libraries, all header files, the Data
36 #                   directory, the configuration GUI and the test code.
37 # install-dbg     - Install the debugging, static version of the libraries.
38 # install-ddso    - Install the debugging, dynamic shared object version of
39 #                   the libraries.
40 # install-opt     - Install the optimized, static version of the libraries.
41 # install-dso     - Install the dynamic shared object version of the libraries.
42 # install-headers - Install only the header files.
43 # install-test    - Install only the test code.
44 # install-data    - Install only the Data directory.
45 # install-gui     - Install only the configuration GUI.
46 #
47 # depend          - Recursively build the dependencies for the source files.
48 # newdepend       - Recursively (and forcibly) rebuild the dependencies for
49 #                   the source files.
50 #
51 # clean           - Clean up everything (uses common 'clean' target).
52 # clobber         - Clean up everything and remove the directories containing
53 #                   the compiled libraries and its object files.
54 #
55 # info            - Print out information about the build process that may be
56 #                   useful to the user.
57 #
58 # The default target is 'dbg'.  'install' will install the debugging, static
59 # version of the libraries.
60 # -----------------------------------------------------------------------------
61
62 default: dbg
63
64 # Define ${_LOCAL_CLEAN} to inform the shared clean target that there is a
65 # '_clean' target to be run besides the standard 'clean' target.  This must
66 # be done before Makefile.base is inlcuded (which in turn includes vj.clean.mk)
67 # so that the variable will be defined when parsing reaches the test for it.
68 _LOCAL_CLEAN    = 1
69
70 # Include common definitions.
71 include @topdir@/Makefile.base
72
73 # Variables whose values are specific to this file.
74 includedir      = @includedir@
75 instlinks       = ${topdir}/instlinks
76 srcdir          = @srcdir@
77 top_srcdir      = @top_srcdir@
78 VJROOT          = ${top_srcdir}
79 VJ_SRCDIR       = @VJ_SRCDIR@
80 WORKDIR         = ${topdir}
81
82 # Extra compiler and linker options needed only by this file.
83 OPT_FLAGS       = -O @OPT_FLAGS@
84
85 # SGI-specific dynamic-shared-object information.
86 DSOREGFILE      = @DSOREGFILE@
87 DSOVERSION      = @DSOVERSION@
88 DSOVERSIONOPTS  = @DSOVERSIONOPTS@
89
90 # Append ${DSOVERSIONOPTS} to ${LDOPTS} so that those extra options (if any)
91 # will be used by ${LD}.
92 LDOPTS          := ${LDOPTS} ${DSOVERSIONOPTS}
93
94 # State whether or not to build the configuration editor GUI.
95 BUILD_GUI       = @BUILD_GUI@
96
97 # Include library building and recursive target code.
98 include ${MKPATH}/vj.lib.mk
99 include ${MKPATH}/vj.rec.mk
100
101 # =============================================================================
102 # Build and installation directory naming and permission information.
103 # =============================================================================
104 _DEBUG_DIR      = debug
105 _OPT_DIR        = opt
106 _DEFAULT_DIR    = ${_DEBUG_DIR}
107
108 _UMASK          = 002
109 _FILE_PERMS     = 664
110 _EXEC_PERMS     = 775
111 _GROUP_NAME     = c2dev
112
113 # ------------------------------------------------
114 # Object file build and installation directories.
115 # ------------------------------------------------
116 _BUILDDIR_BASE  = ${topdir}/obj
117 _BUILDDIR       = ${_BUILDDIR_BASE}/${PLATFORM}/${ABI}/${ISA}
118 _DBG_BUILDDIR   = ${_BUILDDIR}/${_DEBUG_DIR}
119 _OPT_BUILDDIR   = ${_BUILDDIR}/${_OPT_DIR}
120
121 # --------------------------------------------
122 # Library build and installation directories.
123 # --------------------------------------------
124
125 # ${_install_libdir_abs} is the full path to the base directory (minus any
126 # debugging or optimized subdirectories) where the libraries will be
127 # installed.  ${_install_libdir_rel} is only the ${ISA} subdirectory of the
128 # full path.
129 _install_libdir_abs = ${libdir}${LIBBITSUF}/${ISA}
130 _install_libdir_rel = ./${ISA}
131
132 # ${_LIBDIR_NAME} is the name of the library directory including an ABI suffix
133 # if applicable.
134 _LIBDIR_NAME    = lib${LIBBITSUF}
135
136 # ${_LIBDIR_BASE} is the base directory where the libraries will be built.
137 _LIBDIR_BASE    = ${topdir}/${_LIBDIR_NAME}
138
139 # ${_LIBDIR} is the first-level subdirectory of ${_LIBDIR_BASE} that is
140 # named by the instruction set being used (${ISA}).
141 _LIBDIR         = ${_LIBDIR_BASE}/${ISA}
142
143 # ${_DBG_LIBDIR} and ${_OPT_LIBDIR} are the directories where the libraries
144 # are actually built.  The first is for a debugging copy of the libraries and
145 # the second is for an optimized version of the libraries.
146 _DBG_LIBDIR     = ${_LIBDIR}/${_DEBUG_DIR}
147 _OPT_LIBDIR     = ${_LIBDIR}/${_OPT_DIR}
148
149 SHLIB_MAJOR     = 1
150 SHLIB_MINOR     = 0
151
152 # Full names of the static and dynamic versions of the libraries.
153 VJ_LIB_STATIC   = ${VJ_LIBRARY}.a
154 VJ_LIB_DYNAMIC  = ${VJ_LIBRARY}.@SHAREDLIB_EXT@
155
156 GL_API          = @OPENGL_API@
157 GL_LIB_STATIC   = ${GL_LIBRARY}.a
158 GL_LIB_DYNAMIC  = ${GL_LIBRARY}.@SHAREDLIB_EXT@
159
160 PF_API          = @PERFORMER_API@
161 PF_LIB_STATIC   = ${PF_LIBRARY}.a
162 PF_LIB_DYNAMIC  = ${PF_LIBRARY}.@SHAREDLIB_EXT@
163
164 # =============================================================================
165 # Lists used for various types of recursion.
166 # =============================================================================
167
168 # Subdirectories used for recursion through the source tree.
169 SUBDIRS         = Math Config Kernel Environment Performance Input      \
170                   SharedMem Sync Threads
171
172 # Subdirectories used for recursion through the test source tree when
173 # installing.
174 TEST_SUBDIRS    = . CfgTest Matrix Quat Sync input ogl ogl/cubes        \
175                   ogl/glove ogl/simpleGlove ogl/wand pfNav testDynamicCastSTL threads
176
177 # The list of ABIs supported on this platform.
178 ABI_LIST        = @ABI_LIST@
179
180 # =============================================================================
181 # Library targets.  The default is 'dbg' as defined above.  The steps for
182 # building the 'dbg', 'ddso', 'opt' and 'dso' are as follows:
183 #
184 #    1) Build dependencies (if necessary).
185 #    2) Compile all object files that are out of date.
186 #    3) Build the Java-based config editor (if necessary).
187 #    4) Compile the actual libraries from the object files.
188 #    5) Set up the developer installation links.
189 #
190 # These four particular targets are wrapper targets for simpler targets with
191 # an underscore ('_') prepended to the target name.  It is in these simpler
192 # targets that the compilation is done.  The wrapper targets define the order
193 # in which things take place.
194 # =============================================================================
195
196 # Build all four versions of the libraries.
197 all: beforebuild _opt _dso _dbg _ddso _check_gui
198         @echo "------------------------------------------------"
199         @echo "Creating symlinks in ${_LIBDIR}"
200         @echo "------------------------------------------------"
201         cd ${_LIBDIR} &&                                                \
202           rm -f ${VJ_LIB_STATIC} && ln -s ${_DEFAULT_DIR}/${VJ_LIB_STATIC} ./
203         cd ${_LIBDIR} &&                                                \
204           rm -f ${VJ_LIB_DYNAMIC} && ln -s ${_DEFAULT_DIR}/${VJ_LIB_DYNAMIC} ./
205 ifeq (${GL_API}, Y)
206         cd ${_LIBDIR} &&                                                \
207           rm -f ${GL_LIB_STATIC} && ln -s ${_DEFAULT_DIR}/${GL_LIB_STATIC} ./
208         cd ${_LIBDIR} &&                                                \
209           rm -f ${GL_LIB_DYNAMIC} && ln -s ${_DEFAULT_DIR}/${GL_LIB_DYNAMIC} ./
210 endif
211 ifeq (${PF_API}, Y)
212         cd ${_LIBDIR} &&                                                \
213           rm -f ${PF_LIB_STATIC} && ln -s ${_DEFAULT_DIR}/${PF_LIB_STATIC} ./
214         cd ${_LIBDIR} &&                                                \
215           rm -f ${PF_LIB_DYNAMIC} && ln -s ${_DEFAULT_DIR}/${PF_LIB_DYNAMIC} ./
216 endif
217         ${MAKE} afterbuild
218
219 # Build all ABIs in ${ABI_LIST}.
220 all-abi:
221         @abi_list='${ABI_LIST}' ;                                       \
222           for abi in $$abi_list ; do                                    \
223               echo "------------------------------------------------" ; \
224               echo "Building libraries using $$abi" ;                   \
225               echo "------------------------------------------------" ; \
226               echo "${MAKE} vjABI=$$abi all" ;                          \
227               ${MAKE} vjABI=$$abi all ;                                 \
228           done
229
230 # Things to do before the object files and library are built.
231 beforebuild: depend
232
233 # Things to do after the object files and library are built.
234 afterbuild: links
235         @echo "------------------------------------------------"
236         @echo "Library build complete"
237         @echo "------------------------------------------------"
238
239 # ---------------------------------------------
240 # Make the debugging version of the libraries.
241 # ---------------------------------------------
242 dbg: beforebuild _dbg _check_gui afterbuild
243
244 _dbg: _build_dbg
245         ${MAKE} BASE_OBJDIR="${_DBG_BUILDDIR}" LIBDIR="${_DBG_LIBDIR}"  \
246           ${VJ_LIB_STATIC}
247 ifeq (${GL_API}, Y)
248         ${MAKE} BASE_OBJDIR="${_DBG_BUILDDIR}/GL"                       \
249           LIBDIR="${_DBG_LIBDIR}" ${GL_LIB_STATIC}
250 endif
251 ifeq (${PF_API}, Y)
252         ${MAKE} BASE_OBJDIR="${_DBG_BUILDDIR}/Pf"                       \
253           LIBDIR="${_DBG_LIBDIR}" ${PF_LIB_STATIC}
254 endif
255
256 # ------------------------------------------------------------
257 # Make the debugging version of the libraries that uses DSOs.
258 # ------------------------------------------------------------
259 ddso: beforebuild _ddso _check_gui afterbuild
260
261 _ddso: _build_dbg
262         ${MAKE} BASE_OBJDIR="${_DBG_BUILDDIR}" LIBDIR="${_DBG_LIBDIR}"  \
263           ${VJ_LIB_DYNAMIC}
264 ifeq (${GL_API}, Y)
265         ${MAKE} BASE_OBJDIR="${_DBG_BUILDDIR}/GL"                       \
266           LIBDIR="${_DBG_LIBDIR}" ${GL_LIB_DYNAMIC}
267 endif
268 ifeq (${PF_API}, Y)
269         ${MAKE} BASE_OBJDIR="${_DBG_BUILDDIR}/Pf"                       \
270           LIBDIR="${_DBG_LIBDIR}" ${PF_LIB_DYNAMIC}
271 endif
272
273 # ---------------------------------------------
274 # Make the optimized version of the libraries.
275 # ---------------------------------------------
276 opt: beforebuild _opt _check_gui afterbuild
277
278 _opt: _build_opt
279         ${MAKE} BASE_OBJDIR="${_OPT_BUILDDIR}" LIBDIR="${_OPT_LIBDIR}"  \
280           ${VJ_LIB_STATIC}
281 ifeq (${GL_API}, Y)
282         ${MAKE} BASE_OBJDIR="${_OPT_BUILDDIR}/GL"                       \
283           LIBDIR="${_OPT_LIBDIR}" ${GL_LIB_STATIC}
284 endif
285 ifeq (${PF_API}, Y)
286         ${MAKE} BASE_OBJDIR="${_OPT_BUILDDIR}/Pf"                       \
287           LIBDIR="${_OPT_LIBDIR}" ${PF_LIB_STATIC}
288 endif
289
290 # ------------------------------------------------------------
291 # Make the optimized version of the libraries that uses DSOs.
292 # ------------------------------------------------------------
293 dso: beforebuild _dso _check_gui afterbuild
294
295 _dso: _build_opt
296         ${MAKE} BASE_OBJDIR="${_OPT_BUILDDIR}" LIBDIR="${_OPT_LIBDIR}"  \
297           ${VJ_LIB_DYNAMIC}
298 ifeq (${GL_API}, Y)
299         ${MAKE} BASE_OBJDIR="${_OPT_BUILDDIR}/GL"                       \
300           LIBDIR="${_OPT_LIBDIR}" ${GL_LIB_DYNAMIC}
301 endif
302 ifeq (${PF_API}, Y)
303         ${MAKE} BASE_OBJDIR="${_OPT_BUILDDIR}/Pf"                       \
304           LIBDIR="${_OPT_LIBDIR}" ${PF_LIB_DYNAMIC}
305 endif
306
307 # ---------------------------------------------------------
308 # Build the object files with the debugging flags enabled.
309 # ---------------------------------------------------------
310 _build_dbg:
311         @echo "------------------------------------------------"
312         @echo "Making DBG version of libraries"
313         @echo "------------------------------------------------"
314         ${scriptdir}/mkinstalldirs ${_DBG_BUILDDIR}
315         @echo "------------------------------------------------"
316         @echo "Building object files"
317         @echo "------------------------------------------------"
318         ${MAKE} RECTARGET="dbg" OPTIMIZER="-g"                          \
319           BASE_OBJDIR="${_DBG_BUILDDIR}" recursive
320
321 # ------------------------------------------------------------
322 # Build the object files with the optimization flags enabled.
323 # ------------------------------------------------------------
324 _build_opt:
325         @echo "------------------------------------------------"
326         @echo "Making OPT version of libraries"
327         @echo "------------------------------------------------"
328         ${scriptdir}/mkinstalldirs ${_OPT_BUILDDIR}
329         @echo "------------------------------------------------"
330         @echo "Building object files"
331         @echo "------------------------------------------------"
332         ${MAKE} RECTARGET="opt" OPTIMIZER="${OPT_FLAGS}"                \
333           BASE_OBJDIR="${_OPT_BUILDDIR}" recursive
334
335 # --------------------------------------------------------------------
336 # Build only the object files using the default values for ${OBJDIR}.
337 # --------------------------------------------------------------------
338 obj:
339         @echo "------------------------------------------------"
340         @echo "Making library object files"
341         @echo "------------------------------------------------"
342         ${MAKE} RECTARGET="$@" recursive
343         @echo "------------------------------------------------"
344         @echo "Object files built"
345         @echo "------------------------------------------------"
346
347 # -----------------------
348 # Dependency generation.
349 # -----------------------
350 depend: .depend_done
351
352 newdepend:
353         @echo "------------------------------------------------"
354         @echo "Regenerating dependencies"
355         @echo "------------------------------------------------"
356         -@rm -f .depend_done
357         ${MAKE} RECTARGET="$@" recursive
358         @touch .depend_done
359
360 .depend_done:
361         @echo "------------------------------------------------"
362         @echo "Generating dependencies"
363         @echo "------------------------------------------------"
364         ${MAKE} RECTARGET="depend" recursive
365         @touch .depend_done
366
367 # -----------------------------------------------
368 # Construct the static version of the libraries.
369 # -----------------------------------------------
370 static-libs: ${VJ_LIB_STATIC} ${PF_LIB_STATIC} ${GL_LIB_STATIC}
371
372 ${VJ_LIB_STATIC} ${PF_LIB_STATIC} ${GL_LIB_STATIC}:
373         @echo "------------------------------------------------"
374         @echo "Creating $@"
375         @echo "------------------------------------------------"
376         ${scriptdir}/mkinstalldirs ${LIBDIR}
377         ${MAKE} LIBDIR="${LIBDIR}" LIBNAME="$@" OBJS="${OBJDIR}/*.o" static-lib
378         cd ${_LIBDIR_BASE} && ln -sf ${LIBDIR}/$@ ./
379         @echo "------------------------------------------------"
380         @echo "$@ done"
381         @echo "------------------------------------------------"
382
383 # -------------------------------------------------------
384 # Construct the dynamic shared version of the libraries.
385 # -------------------------------------------------------
386 shared-libs: ${VJ_LIB_DYNAMIC} ${PF_LIB_DYNAMIC} ${GL_LIB_DYNAMIC}
387
388 ${VJ_LIB_DYNAMIC} ${PF_LIB_DYNAMIC} ${GL_LIB_DYNAMIC}:
389         @echo "------------------------------------------------"
390         @echo "Creating $@"
391         @echo "------------------------------------------------"
392         ${scriptdir}/mkinstalldirs ${LIBDIR}
393         ${MAKE} LIBDIR="${LIBDIR}" LIBNAME="$@" OBJS="${OBJDIR}/*.o" shared-lib
394         cd ${_LIBDIR_BASE} && ln -sf ${LIBDIR}/$@ ./
395         @echo "------------------------------------------------"
396         @echo "$@ done"
397         @echo "------------------------------------------------"
398
399 # =============================================================================
400 # Java-based configuration editor targets.
401 # =============================================================================
402
403 # This is a wrapper for the 'gui' target that checks for the mere existence
404 # of the JAR file before compiling the GUI code.
405 _check_gui:
406         @if [ ! -e ${topdir}/GUI/VjControl.jar ] ; then \
407             ${MAKE} gui ;                               \
408         fi
409
410 # Build the Java-based configuration GUI.
411 gui:
412 ifeq (${BUILD_GUI}, Y)
413         @echo "------------------------------------------------"
414         @echo "Building GUI"
415         @echo "------------------------------------------------"
416         cd GUI && ${MAKE} all
417         @echo "------------------------------------------------"
418         @echo "GUI done"
419         @echo "------------------------------------------------"
420 else
421         @echo "------------------------------------------------"
422         @echo "GUI cannot be built without javac"
423         @echo "------------------------------------------------"
424 endif
425
426 # =============================================================================
427 # Make links for developer use that provide the needed functionality for
428 # the $VJ_BASE_DIR environment variable to be used when needed.  $VJ_BASE_DIR
429 # should be set to ${instlinks}.
430 # =============================================================================
431 links:
432         @echo "------------------------------------------------"
433         @echo "Setting up developer installation links"
434         @echo "------------------------------------------------"
435         ${scriptdir}/mkinstalldirs ${instlinks}
436         ${scriptdir}/mkinstalldirs ${instlinks}/include
437         cd ${instlinks}/include &&                                      \
438           dir_list='${SUBDIRS}' ;                                       \
439             for dir in $$dir_list ; do                                  \
440                 rm -f ./$$dir ;                                         \
441                 ln -s ${VJROOT_ABS}/$$dir ./$$dir ;                     \
442             done
443         cd ${instlinks} && rm -f ./${_LIBDIR_NAME} &&                   \
444           ln -s ${_LIBDIR_BASE} ./${_LIBDIR_NAME}
445         cd ${instlinks} && rm -f ./Data && ln -s ${VJROOT_ABS}/Data ./Data
446         cd ${instlinks}/include && ln -sf ${VJROOT_ABS}/vjConfig.h ./vjConfig.h
447         cd ${instlinks}/include && ln -sf ${topdir}/vjDefines.h ./vjDefines.h
448         ${scriptdir}/mkinstalldirs ${instlinks}/bin
449         cd ${instlinks}/bin && ln -sf ${topdir}/GUI/VjControl.jar ./
450         cd ${instlinks}/bin && ln -sf ${VJROOT_ABS}/GUI/vjcontrol ./vjcontrol
451         @echo "\n\n"
452         @echo "---------------------------------------------------------------"
453         @echo 'You should now set $$VJ_BASE_DIR to:'
454         @cd ${instlinks} && echo "  `pwd`"
455         @echo "---------------------------------------------------------------"
456
457 # Remove the links in ${instlinks}.
458 clean-links:
459         @echo "------------------------------------------------"
460         @echo "Removing developer installation links"
461         @echo "------------------------------------------------"
462         rm -rf ${instlinks}
463
464 # =============================================================================
465 # Installation targets.  The default (what is done by 'install') is to install
466 # the static debugging version of the libraries.  The steps taken for a full
467 # installation are:
468 #
469 #     1) Ensure that everything is built.
470 #     2) Create the installation directory.
471 #     3) Install the libraries.
472 #     4) Install the header files.
473 #     5) Install the test programs.
474 #     6) Install the contents of the Data directory.
475 #     7) Install the Java-based config editor (if possible).
476 # =============================================================================
477
478 # Steps to take before beginning the installation process.
479 beforeinstall:
480         ${scriptdir}/mkinstalldirs ${prefix}
481         ${MTREE_CMD} -Ude -f ${mtreedir}/VJ.install.dist -p ${prefix}
482
483 # Steps to take after the installation process is complete.
484 afterinstall:
485         @echo "------------------------------------------------"
486         @echo "Library installation complete"
487         @echo "------------------------------------------------"
488
489 # Do a full installation all versions of the libraries and the associated
490 # files.
491 install-all: beforeinstall install-opt install-dso install-dbg          \
492              install-ddso install-headers install-test install-data     \
493              install-gui
494         @echo "------------------------------------------------"
495         @echo "Creating symlinks in ${_install_libdir_abs}"
496         @echo "------------------------------------------------"
497         cd ${_install_libdir_abs} && umask ${_UMASK} &&                 \
498           rm -f ${VJ_LIB_STATIC} && ln -s ${_DEFAULT_DIR}/${VJ_LIB_STATIC} ./
499         cd ${_install_libdir_abs} && umask ${_UMASK} &&                 \
500           rm -f ${VJ_LIB_DYNAMIC} && ln -s ${_DEFAULT_DIR}/${VJ_LIB_DYNAMIC} ./
501 ifeq (${GL_API}, Y)
502         cd ${_install_libdir_abs} && umask ${_UMASK} &&                 \
503           rm -f ${GL_LIB_STATIC} && ln -s ${_DEFAULT_DIR}/${GL_LIB_STATIC} ./
504         cd ${_install_libdir_abs} && umask ${_UMASK} &&                 \
505           rm -f ${GL_LIB_DYNAMIC} && ln -s ${_DEFAULT_DIR}/${GL_LIB_DYNAMIC} ./
506 endif
507 ifeq (${PF_API}, Y)
508         cd ${_install_libdir_abs} && umask ${_UMASK} &&                 \
509           rm -f ${PF_LIB_STATIC} && ln -s ${_DEFAULT_DIR}/${PF_LIB_STATIC} ./
510         cd ${_install_libdir_abs} && umask ${_UMASK} &&                 \
511           rm -f ${PF_LIB_DYNAMIC} && ln -s ${_DEFAULT_DIR}/${PF_LIB_DYNAMIC} ./
512 endif
513         ${MAKE} afterinstall
514
515 # Do a full installation of all versions of the libraries built in each of the
516 # ABIs in ${ABI_LIST}.
517 install-all-abi:
518         @abi_list='${ABI_LIST}' ;                                       \
519           for abi in $$abi_list ; do                                    \
520               echo "------------------------------------------------" ; \
521               echo "Installing $$abi version of libraries" ;            \
522               echo "------------------------------------------------" ; \
523               ${MAKE} vjABI=$$abi install-all ;                         \
524           done
525         @echo "------------------------------------------------"
526         @echo "install-all-abi done"
527         @echo "------------------------------------------------"
528
529 # Do a full installation of the static debugging version of the libraries.
530 install: beforeinstall install-dbg install-headers install-test         \
531          install-data install-gui afterinstall
532
533 # ------------------------------------------------------------
534 # Install only the static debugging version of the libraries.
535 # ------------------------------------------------------------
536 install-dbg: dbg
537         @echo "------------------------------------------------"
538         @echo "Installing static debugging libraries"
539         @echo "------------------------------------------------"
540         ${MTREE_CMD} -Ude -p ${prefix}                                  \
541           -f ${mtreedir_os}/VJ.lib${LIBBITSUF}${ISA}.dist
542         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
543           ${_DBG_LIBDIR}/${VJ_LIB_STATIC} ${_install_libdir_abs}/${_DEBUG_DIR}/
544         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
545           ln -sf ${_install_libdir_rel}/${_DEBUG_DIR}/${VJ_LIB_STATIC} ./
546 ifeq (${GL_API}, Y)
547         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
548           ${_DBG_LIBDIR}/${GL_LIB_STATIC} ${_install_libdir_abs}/${_DEBUG_DIR}/
549         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
550           ln -sf ${_install_libdir_rel}/${_DEBUG_DIR}/${GL_LIB_STATIC} ./
551 endif
552 ifeq (${PF_API}, Y)
553         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
554           ${_DBG_LIBDIR}/${PF_LIB_STATIC} ${_install_libdir_abs}/${_DEBUG_DIR}/
555         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
556           ln -sf ${_install_libdir_rel}/${_DEBUG_DIR}/${PF_LIB_STATIC} ./
557 endif
558
559 # -------------------------------------------------------------
560 # Install only the dynamic debugging version of the libraries.
561 # -------------------------------------------------------------
562 install-ddso: ddso
563         @echo "------------------------------------------------"
564         @echo "Installing dynamic debugging libraries"
565         @echo "------------------------------------------------"
566         ${MTREE_CMD} -Ude -p ${prefix}                                  \
567           -f ${mtreedir_os}/VJ.lib${LIBBITSUF}${ISA}.dist
568         ${INSTALL} -m ${_EXEC_PERMS} -g ${_GROUP_NAME}                  \
569           ${_DBG_LIBDIR}/${VJ_LIB_DYNAMIC} ${_install_libdir_abs}/${_DEBUG_DIR}/
570         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
571           ln -sf ${_install_libdir_rel}/${_DEBUG_DIR}/${VJ_LIB_DYNAMIC} ./
572 ifeq (${GL_API}, Y)
573         ${INSTALL} -m ${_EXEC_PERMS} -g ${_GROUP_NAME}                  \
574           ${_DBG_LIBDIR}/${GL_LIB_DYNAMIC} ${_install_libdir_abs}/${_DEBUG_DIR}/
575         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
576           ln -sf ${_install_libdir_rel}/${_DEBUG_DIR}/${GL_LIB_DYNAMIC} ./
577 endif
578 ifeq (${PF_API}, Y)
579         ${INSTALL} -m ${_EXEC_PERMS} -g ${_GROUP_NAME}                  \
580           ${_DBG_LIBDIR}/${PF_LIB_DYNAMIC} ${_install_libdir_abs}/${_DEBUG_DIR}/
581         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
582           ln -sf ${_install_libdir_rel}/${_DEBUG_DIR}/${PF_LIB_DYNAMIC} ./
583 endif
584
585 # ------------------------------------------------------------
586 # Install only the static optimized version of the libraries.
587 # ------------------------------------------------------------
588 install-opt: opt
589         @echo "------------------------------------------------"
590         @echo "Installing static optimized libraries"
591         @echo "------------------------------------------------"
592         ${MTREE_CMD} -Ud -p ${prefix}                                   \
593           -f ${mtreedir_os}/VJ.lib${LIBBITSUF}${ISA}.dist
594         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
595           ${_OPT_LIBDIR}/${VJ_LIB_STATIC} ${_install_libdir_abs}/${_OPT_DIR}/
596         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
597           ln -sf ${_install_libdir_rel}/${_OPT_DIR}/${VJ_LIB_STATIC} ./
598 ifeq (${GL_API}, Y)
599         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
600           ${_OPT_LIBDIR}/${GL_LIB_STATIC} ${_install_libdir_abs}/${_OPT_DIR}/
601         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
602           ln -sf ${_install_libdir_rel}/${_OPT_DIR}/${GL_LIB_STATIC} ./
603 endif
604 ifeq (${PF_API}, Y)
605         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
606           ${_OPT_LIBDIR}/${PF_LIB_STATIC} ${_install_libdir_abs}/${_OPT_DIR}/
607         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
608           ln -sf ${_install_libdir_rel}/${_OPT_DIR}/${PF_LIB_STATIC} ./
609 endif
610
611 # -------------------------------------------------------------
612 # Install only the dynamic optimized version of the libraries.
613 # -------------------------------------------------------------
614 install-dso: dso
615         @echo "------------------------------------------------"
616         @echo "Installing dynamic optimizied libraries"
617         @echo "------------------------------------------------"
618         ${MTREE_CMD} -Ude -p ${prefix}                                  \
619           -f ${mtreedir_os}/VJ.lib${LIBBITSUF}${ISA}.dist
620         ${INSTALL} -m ${_EXEC_PERMS} -g ${_GROUP_NAME}                  \
621           ${_OPT_LIBDIR}/${VJ_LIB_DYNAMIC} ${_install_libdir_abs}/${_OPT_DIR}/
622         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
623           ln -sf ${_install_libdir_rel}/${_OPT_DIR}/${VJ_LIB_DYNAMIC} ./
624 ifeq (${GL_API}, Y)
625         ${INSTALL} -m ${_EXEC_PERMS} -g ${_GROUP_NAME}                  \
626           ${_OPT_LIBDIR}/${GL_LIB_DYNAMIC} ${_install_libdir_abs}/${_OPT_DIR}/
627         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
628           ln -sf ${_install_libdir_rel}/${_OPT_DIR}/${GL_LIB_DYNAMIC} ./
629 endif
630 ifeq (${PF_API}, Y)
631         ${INSTALL} -m ${_EXEC_PERMS} -g ${_GROUP_NAME}                  \
632           ${_OPT_LIBDIR}/${PF_LIB_DYNAMIC} ${_install_libdir_abs}/${_OPT_DIR}/
633         cd ${libdir}${LIBBITSUF} && umask ${_UMASK} &&                  \
634           ln -sf ${_install_libdir_rel}/${_OPT_DIR}/${PF_LIB_DYNAMIC} ./
635 endif
636
637 # Install the header files.
638 install-headers:
639         @echo "------------------------------------------------"
640         @echo "Installing header files"
641         @echo "------------------------------------------------"
642         ${MTREE_CMD} -Ude -f ${mtreedir}/VJ.include.dist -p ${prefix}
643         ${MAKE} RECTARGET="install" recursive
644         @cat ${VJROOT_ABS}/vjConfig.h |                                 \
645             sed -e 's/^#ifdef HAVE_CONFIG_H//'                          \
646                 -e 's/^#endif..*HAVE_CONFIG_H.*$$//' >./vjConfig.tmp
647         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
648           ./vjConfig.tmp ${includedir}/vjConfig.h
649         @-rm -f ./vjConfig.tmp
650         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
651           ${topdir}/vjDefines.h ${includedir}
652
653 # Install the test programs.
654 install-test:
655         @echo "------------------------------------------------"
656         @echo "Installing test programs"
657         @echo "------------------------------------------------"
658         ${MTREE_CMD} -Ude -f ${mtreedir}/VJ.test.dist -p ${prefix}
659         ${scriptdir}/install-src.pl -i ${top_srcdir}/test               \
660           -m ${_FILE_PERMS} -g ${_GROUP_NAME} -o ${prefix}/test
661         ${scriptdir}/makefiles-gen.pl --CXX="${CXX}" --DEFS="${DEFS}"   \
662           --CPPFLAGS="${CPPFLAGS}" --CXXFLAGS="${CXXFLAGS}"             \
663           --INCLUDES="@INCLUDES@" --startdir="${top_srcdir}/test"       \
664           --SUBDIRS="${TEST_SUBDIRS}" --mode="${_FILE_PERMS}"           \
665           --gname="${_GROUP_NAME}" --srcdir="."                         \
666           --prefix="${prefix}/test"                                     \
667           --TEST_VJ_LIBS_BASIC='@TEST_VJ_LIBS_BASIC_SUBST@'             \
668           --TEST_VJ_LIBS_GL='@TEST_VJ_LIBS_GL@'                         \
669           --TEST_VJ_LIBS_PF='@TEST_VJ_LIBS_PF@'                         \
670           --TEST_LIBS_BASIC='@TEST_LIBS_BASIC@'                         \
671           --TEST_EXTRA_LIBS_BASIC="@TEST_EXTRA_LIBS_BASIC_SUBST@"       \
672           --TEST_EXTRA_LIBS_GL="@TEST_EXTRA_LIBS_GL_SUBST@"             \
673           --TEST_EXTRA_LIBS_PF="@TEST_EXTRA_LIBS_PF@"
674
675 # Install the standard data files.
676 install-data:
677         @echo "------------------------------------------------"
678         @echo "Installing standard data files"
679         @echo "------------------------------------------------"
680         ${MTREE_CMD} -Ude -f ${mtreedir}/VJ.data.dist -p ${prefix}
681         ${scriptdir}/install-dir.pl -i ${top_srcdir}/Data               \
682           -m ${_FILE_PERMS} -g ${_GROUP_NAME} -o ${prefix}/Data
683
684 # Install the Java-based config editor if possible.
685 install-gui: _check_gui
686 ifeq (${BUILD_GUI}, Y)
687         @echo "------------------------------------------------"
688         @echo "Installing vjcontrol"
689         @echo "------------------------------------------------"
690         ${INSTALL} -m ${_FILE_PERMS} -g ${_GROUP_NAME}                  \
691           ${topdir}/GUI/VjControl.jar ${bindir}
692         ${INSTALL} -m ${_EXEC_PERMS} -g ${_GROUP_NAME}                  \
693           ${VJROOT_ABS}/GUI/vjcontrol ${bindir}/vjcontrol
694 else
695         @echo "------------------------------------------------"
696         @echo "Skipping installation of vjcontrol (not built)"
697         @echo "------------------------------------------------"
698 endif
699
700 # =============================================================================
701 # Clean-up targets.  '_clean' removes all the files in the build directories. 
702 # 'clobber' removes the ${_BUILDDIR_BASE} and ${_LIBDIR_NAME} directories.
703 # =============================================================================
704 _clean:
705         @echo "------------------------------------------------"
706         @echo "Cleaning up the build tree"
707         @echo "------------------------------------------------"
708         ${MAKE} RECTARGET="clean" recursive
709         cd GUI && ${MAKE} clean
710         @if test -d ${_DBG_BUILDDIR}; then                              \
711             echo "------------------------------------------------" ;   \
712             echo "Removing ${_DBG_BUILDDIR} ..."                    ;   \
713             echo "------------------------------------------------" ;   \
714             rm -r ${_DBG_BUILDDIR} ;                                    \
715         fi
716         @if test -d ${_OPT_BUILDDIR}; then                              \
717             echo "------------------------------------------------" ;   \
718             echo "Removing ${_OPT_BUILDDIR} ..."                    ;   \
719             echo "------------------------------------------------" ;   \
720             rm -r ${_OPT_BUILDDIR} ;                                    \
721         fi
722         -@rm -f .*_done
723         rm -f so_locations
724         @echo "------------------------------------------------"
725         @echo "Done with 'clean'"
726         @echo "------------------------------------------------"
727
728 clobber: _clean clean-links
729         @echo "------------------------------------------------"
730         @echo "Clobbering build directories"
731         @echo "------------------------------------------------"
732         @if test -d ${_BUILDDIR_BASE} ; then                            \
733             echo "------------------------------------------------" ;   \
734             echo "Removing ${_BUILDDIR_BASE} ..."                   ;   \
735             echo "------------------------------------------------" ;   \
736             rm -rf ${_BUILDDIR_BASE} ;                                  \
737         fi
738         @if test -d ${_LIBDIR_NAME}; then                               \
739             echo "------------------------------------------------" ;   \
740             echo "Removing ${_LIBDIR_NAME} ..."                     ;   \
741             echo "------------------------------------------------" ;   \
742             rm -rf ${_LIBDIR_NAME} ;                                    \
743         fi
744         @echo "------------------------------------------------"
745         @echo "Done with 'clobber'"
746         @echo "------------------------------------------------"
747
748 # =============================================================================
749 # Human-readable information about the build system.
750 # =============================================================================
751 info::
752         @echo "\nInfo for the make of ${VJ_LIBRARY}"
753         @echo "\nOBJDIR: ${OBJDIR}"
754         @echo "VJROOT_ABS: ${VJROOT_ABS}"
755         @echo "Default ABI: ${ABI}"
756         @echo "Default instruction set architecture: ${ISA}"
757         @echo "ABI list: ${ABI_LIST}"
758         @echo "DBG_BUILDDIR: ${_DBG_BUILDDIR}"
759         @echo "OPT_BUILDDIR: ${_OPT_BUILDDIR}"
760         @echo "Installation prefix: ${prefix}"
761         @echo "includedir: ${includedir}"
762         @echo "libdir: ${libdir}"
763         @${scriptdir}/print-targets.sh
Note: See TracBrowser for help on using the browser.