root/juggler/tags/1.0_alpha_04/Makefile.base.in

Revision 401, 8.5 kB (checked in by patrick, 10 years ago)

Updated the heading comments to reflect the change made in Rev. 1.10 to
use ${VJ_LIBRARY}, ${GL_LIBRARY} and ${PF_LIBRARY} instead of just
${LIBRARY}.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 # -----------------------------------------------------------------------------
2 # $Id$
3 #
4 # This file <Makefile.base> provides variable information and targets shared
5 # by all Makefiles in the VR Juggler source tree.  It requires GNU make.
6 # -----------------------------------------------------------------------------
7 # All Makefiles in the source tree should include this file for maximum
8 # information sharing.
9 #
10 # ** NOTE:                                                                  **
11 # **   Shared targets are defined here, so any files that include this file **
12 # **   should define a default target BEFORE including this file.           **
13 # -----------------------------------------------------------------------------
14 # Variables defined here are:
15 #
16 # SHELL          - The shell to use when make(1) executes shell commands.
17 #
18 # bindir         - Path to bin directory containing executables (usually
19 #                  ${exec_prefix}/bin).
20 # datadir        - Path to a directory generally sharing platform-independent
21 #                  data (usually ${prefix}/share).
22 # exec_prefix    - Path to base directory where executables will be (usually
23 #                  ${prefix}).
24 # libdir         - Path to directory containing shared and static libraries
25 #                  (usually ${exec_prefix}/lib).
26 # libexecdir     - Path to libexec directory that generally contains
27 #                  executables not called directly by users (usually
28 #                  ${exec_prefix}/libexec).
29 # mtreedir       - Base directory containing the mtree directory hierarchy
30 #                  specifications.
31 # mtreedir_os    - Subdirectory of ${mtreedir} containing platform-specific
32 #                  directory hierarchy specification files.
33 # prefix         - Base path used for installation and other things.
34 # releasedir     - The absolute path to the release directory.
35 # sbindir        - Path to sbin directory containing executables (usually
36 #                  ${exec_prefix}/sbin).
37 # scriptdir      - The path to the directory containing scripts used in the
38 #                  build and install/release process.
39 # sysconfdir     - System configuration directory (usually ${prefix}/etc).
40 # topdir         - The top of the build tree.
41 # VJROOT_ABS     - The absolute path to the root of the VR Juggler source
42 #                  tree.
43 #
44 # AR             - Path to ar(1) (or equivalent program).
45 # ARFLAGS        - Flags for ${AR}.
46 # CC             - Path to C compiler.
47 # CXX            - Path to C++ compiler.
48 # CPP            - Command for invoking the C preprocessor.
49 # CXXCPP         - Command for invoking the C preprocessor used by the C++
50 #                  compiler.
51 # CFLAGS         - Flags for ${CC}.
52 # CPPFLAGS       - Flags for ${CPP} and ${CXXCPP}.
53 # CXXFLAGS       - Flags for ${CXX}.
54 # DEFS           - Command-line preprocessor definitions (-Dvariable=value).
55 # DEPENDFLAGS    - Flags passed to makedepend(1) (or equivalent program for
56 #                  generating dependencies).
57 # DEPEND_EXTRAS  - Flags not recognized by makedepend(1) that may be necessary
58 #                  in ${CFLAGS} or ${CXXFLAGS}.
59 # INCLUDES       - Additions to the include path (-I/path/to/include).
60 # LD             - Path to ld(1) (or equivalent program).
61 # LDFLAGS        - Flags for ${LD}.
62 # LDOPTS         - Extra, often platform-specific, options for the linker.
63 # LIBS           - Extra external libraries needed at link time.
64 # MKPATH         - Path to shared vj.*.mk file directory.
65 # MTREE_CMD      - Path to a BSD-compatible mtree.
66 # OBJDIR         - Path to the directory where the object files will be built.
67 #
68 # C_COMPILE      - Command for compiling C code.
69 # CXX_COMPILE    - Command for compiling C++ code.
70 #
71 # ABI            - Application Binary Interface type (on IRIX).  This may be
72 #                  used for other binary types when supported by the operating
73 #                  system (e.g., "ELF" or "AOUT").
74 # LIBBITSUF      - Suffix for the library path used by the linker on IRIX
75 #                  only.  For o32 binaries, it will be blank.  For n32
76 #                  binaries, it will be 32.  For 64-bit binaries, it will be
77 #                  64.
78 # PLATFORM       - The operating system abbreviation on which the library is
79 #                  being built (e.g., SGI -> IRIX on an SGI computer,
80 #                  HP => HP-UX on an HP workstation).
81 #
82 # VJ_LIBRARY     - The base name of the core Juggler library that will be
83 #                  built with no file extension.
84 # GL_LIBRARY     - The base name of the OpenGL Juggler API library with no
85 #                  file extension.
86 # PF_LIBRARY     - The base name of the Performer Juggler API library with no
87 #                  file extension.
88 # -----------------------------------------------------------------------------
89 # Targets defined here are:
90 #
91 # Suffix rules for .c => .o and .cpp => .o.
92 # clean: Standard directory clean-up target.
93 # -----------------------------------------------------------------------------
94
95 SHELL           = /bin/sh
96
97 # -----------------------------------------------------------------------------
98 # Base variables needed by all Makefiles.
99 # -----------------------------------------------------------------------------
100 bindir          = @bindir@
101 datadir         = @datadir@
102 exec_prefix     = @exec_prefix@
103 libdir          = @libdir@
104 libexecdir      = @libexecdir@
105 mtreedir        = ${releasedir}/mtree
106 mtreedir_os     = ${mtreedir}/${PLATFORM}
107 prefix          = @prefix@
108 releasedir      = ${VJROOT_ABS}/release
109 sbindir         = @sbindir@
110 scriptdir       = ${releasedir}/scripts
111 sysconfdir      = @sysconfdir@
112 topdir          = @topdir@
113 VJROOT_ABS      = @VJROOT_ABS@
114
115 AR              = @AR@ ${ARFLAGS}
116 ARFLAGS         = @ARFLAGS@
117 CC              = @CC@
118 CXX             = @CXX@
119 CPP             = @CPP@
120 CXXCPP          = @CXXCPP@
121 CFLAGS          = @CFLAGS@ ${OPTIMIZER}
122 CPPFLAGS        = @CPPFLAGS@
123 CXXFLAGS        = @CXXFLAGS@ ${OPTIMIZER}
124 DEFS            = @DEFS@
125 DEPENDFLAGS     = @DEPENDFLAGS@ @INCLUDES@ -I${VJROOT_ABS} -I${topdir}
126 DEPEND_EXTRAS   = @DEPEND_EXTRAS@ ${DEFS}
127 INCLUDES        = @INCLUDES@ -I${VJROOT} -I${topdir}
128 INSTALL         = @INSTALL@
129 LD              = @LD@
130 LDFLAGS         = @LDFLAGS@ -L/usr/lib${LIBBITSUF} -L/usr/lib
131 LDOPTS          = @LDOPTS@
132 LIBS            = @LIBS@
133 MAKEFLAGS       += --no-print-directory
134 MKPATH          = ${VJROOT_ABS}/mk
135 MTREE_CMD       = @MTREE_CMD@
136
137 # Allow overriding the default value of ${OBJDIR} by setting ${BASE_OBJDIR}
138 # (probably using an externally defined value).
139 ifdef BASE_OBJDIR
140     OBJDIR      := ${BASE_OBJDIR}
141 else
142     OBJDIR      = .
143 endif
144
145 # -----------------------------------------------------------------------------
146 # Compiler command lines.
147 # -----------------------------------------------------------------------------
148 C_COMPILE       = ${CC} ${DEFS} ${INCLUDES} ${CPPFLAGS} ${CFLAGS}
149 CXX_COMPILE     = ${CXX} ${DEFS} ${INCLUDES} ${CPPFLAGS} ${CXXFLAGS}
150
151 # -----------------------------------------------------------------------------
152 # Platform- and binary-specific options.  The assignments preceding the
153 # ifeq ... endif blocks are the default values.  Depending on the value of
154 # ${ABI}, further settings may be made to allow for building with multiple
155 # ABIs.
156 # -----------------------------------------------------------------------------
157 ifdef vjABI
158     ifeq (${vjABI}, O32)
159         ABI             = O32
160         ISA             = mips2
161     endif
162     ifeq (${vjABI}, N32_M3)
163         ABI             = N32
164         ISA             = mips3
165     endif
166     ifeq (${vjABI}, N32_M4)
167         ABI             = N32
168         ISA             = mips4
169     endif
170     ifeq (${vjABI}, 64_M3)
171         ABI             = 64
172         ISA             = mips3
173     endif
174     ifeq (${vjABI}, 64_M4)
175         ABI             = 64
176         ISA             = mips4
177     endif
178 else
179     ABI         = @ABI@
180     ISA         = @ISA@
181     LIBBITSUF   = @LIBBITSUF@
182 endif
183
184 PLATFORM        = @PLATFORM@
185
186 ifeq (${ABI}, O32)
187     ARFLAGS     := -o32 -mips2 ${ARFLAGS}
188     CFLAGS      += -o32 -mips2
189     CXXFLAGS    += -o32 -mips2
190     LDOPTS      += -o32 -mips2
191     LIBBITSUF   =
192 endif
193 ifeq (${ABI}, N32)
194     ARFLAGS     := -n32 ${ARFLAGS}
195     CFLAGS      += -n32
196     CXXFLAGS    += -n32
197     LDOPTS      += -n32
198     LIBBITSUF   = 32
199 endif
200 ifeq (${ABI}, 64)
201     ARFLAGS     := -64 ${ARFLAGS}
202     CFLAGS      += -64
203     CXXFLAGS    += -64
204     LDOPTS      += -64
205     LIBBITSUF   = 64
206 endif
207
208 ifeq (${ISA}, mips3)
209     ARFLAGS     := -mips3 ${ARFLAGS}
210     CFLAGS      += -mips3
211     CXXFLAGS    += -mips3
212     LDOPTS      += -mips3
213 endif
214 ifeq (${ISA}, mips4)
215     ARFLAGS     := -mips4 ${ARFLAGS}
216     CFLAGS      += -mips4
217     CXXFLAGS    += -mips4
218     LDOPTS      += -mips4
219 endif
220
221 # -----------------------------------------------------------------------------
222 # Library names.
223 # -----------------------------------------------------------------------------
224 VJ_LIBRARY      = libJuggler
225 GL_LIBRARY      = libJuggler_ogl
226 PF_LIBRARY      = libJuggler_pf
227
228 @SET_MAKE@
229
230 # -----------------------------------------------------------------------------
231 # Include a common 'clean' target.
232 # -----------------------------------------------------------------------------
233 include ${MKPATH}/vj.clean.mk
Note: See TracBrowser for help on using the browser.