[svn] / trunk / xvidcore / build / generic / Makefile Repository:
ViewVC logotype

Annotation of /trunk/xvidcore/build/generic/Makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2199 - (view) (download)

1 : edgomez 824 ##############################################################################
2 :     #
3 : Isibaar 1797 # - Unified Makefile for Xvid for *nix environments -
4 : edgomez 824 #
5 : edgomez 1451 # Copyright(C) 2003-2004 Edouard Gomez <ed.gomez@free.fr>
6 : edgomez 824 #
7 :     #
8 :     # Description:
9 : Isibaar 1797 # This Makefile allows building Xvid sources to obtain a shared library
10 : edgomez 1382 # and a static library. This Makefile uses variables defined in the
11 : edgomez 824 # platform.inc file. This platform.inc file is usually created by the
12 :     # ./configure script whenever a unix shell is available.
13 :     #
14 : edgomez 1451 # Makefile functional dependencies:
15 : edgomez 1382 # - echo
16 :     # - rm (with option -r and -f)
17 :     # - cd
18 :     # - make VPATH support (eg: GNU make, solaris 8 make)
19 : edgomez 1451 # - ar
20 : edgomez 824 #
21 : edgomez 1382 # Building output:
22 :     # - C means "_C_ompiling"
23 :     # - A means "_A_ssembling"
24 :     # - I means "_I_nstalling"
25 :     # - D means "creating _D_irectory"
26 :     # - Cl means "_Cl_eaning"
27 : edgomez 824 #
28 : edgomez 1382 # NB: (for mingw32/djgpp users)
29 :     # These 2 environments do not provide a shell by default. So it's impossible
30 :     # to use the configure script to generate a platform.inc file suitable for
31 :     # your machine. You have two choices:
32 :     # - install minsys from the mingw project or install cygwin and then use
33 :     # the configure script as on a unix system.
34 :     # - write a platform.inc file by hand.
35 :     #
36 :     # PS: default build directory is "=build", it fits naming conventions that
37 :     # make the arch/tla revision control program ignore files contained in
38 :     # this directory during commits operations. This choice is completly
39 :     # arbitrary, but try not to change it.
40 :     #
41 : edgomez 824 ##############################################################################
42 :    
43 :     include sources.inc
44 : Isibaar 1997 ifeq ($(findstring $(MAKECMDGOALS), clean distclean mrproper),)
45 : edgomez 824 include platform.inc
46 : Isibaar 1997 endif
47 : edgomez 824
48 : Isibaar 2199 ifeq ($(V),1)
49 :     SILENT =
50 :     else
51 :     SILENT = @
52 :     endif
53 :    
54 : edgomez 824 RM = rm -rf
55 :    
56 :     ##############################################################################
57 :     #
58 :     # Build rules
59 :     #
60 :     ##############################################################################
61 :    
62 :     # Their Objects
63 : edgomez 1382 OBJECTS = $(GENERIC_OBJECTS)
64 :     OBJECTS += $(ASSEMBLY_OBJECTS)
65 :     OBJECTS += $(DCT_IA64_OBJECTS)
66 : edgomez 1412 OBJECTS += $(PPC_ALTIVEC_OBJECTS)
67 : edgomez 824
68 : edgomez 1451 # The VPATH mechanism could use a "per target" build directory
69 : edgomez 1382 # To keep it simple at the moment, the directory is fixed to "build"
70 :     BUILD_DIR = =build
71 :     VPATH = $(SRC_DIR):$(BUILD_DIR)
72 :    
73 : edgomez 824 #-----------------------------------------------------------------------------
74 :     # The default rule
75 :     #-----------------------------------------------------------------------------
76 :    
77 :     .SUFFIXES: .$(OBJECT_EXTENSION) .$(ASSEMBLY_EXTENSION) .c
78 :    
79 : Isibaar 1973 all: info $(STATIC_LIB) $(SHARED_LIB)
80 : edgomez 830 @echo
81 :     @echo "---------------------------------------------------------------"
82 : Isibaar 1797 @echo " Xvid has been successfully built."
83 : edgomez 1382 @echo
84 :     @echo " * Binaries are currently located in the '$(BUILD_DIR)' directory"
85 :     @echo " * To install them on your system, you can run '# make install'"
86 :     @echo " as root."
87 : edgomez 830 @echo "---------------------------------------------------------------"
88 :     @echo
89 : edgomez 824
90 : edgomez 1382 $(OBJECTS): platform.inc
91 :    
92 :     $(BUILD_DIR):
93 :     @echo " D: $(BUILD_DIR)"
94 : Isibaar 2199 $(SILENT)$(INSTALL) -d $(BUILD_DIR)
95 : edgomez 1382
96 : edgomez 824 #-----------------------------------------------------------------------------
97 :     # Generic assembly rule
98 :     #-----------------------------------------------------------------------------
99 :    
100 :     .$(ASSEMBLY_EXTENSION).$(OBJECT_EXTENSION):
101 : edgomez 1382 @echo " A: $(@D)/$(<F)"
102 :     @$(INSTALL) -d $(BUILD_DIR)/$(@D)
103 : Isibaar 2199 $(SILENT)$(AS) $(AFLAGS) $< -o $(BUILD_DIR)/$@
104 : edgomez 824
105 :     #-----------------------------------------------------------------------------
106 :     # Generic C rule
107 :     #-----------------------------------------------------------------------------
108 :    
109 : Isibaar 1875 $(PPC_ALTIVEC_OBJECTS): CFLAGS+= $(ALTIVEC_CFLAGS)
110 :    
111 : edgomez 824 .c.$(OBJECT_EXTENSION):
112 : edgomez 1382 @echo " C: $(@D)/$(<F)"
113 :     @$(INSTALL) -d $(BUILD_DIR)/$(@D)
114 : Isibaar 2199 $(SILENT)$(CC) -c $(ARCHITECTURE) $(BUS) $(ENDIANNESS) $(FEATURES) $(SPECIFIC_CFLAGS) $(CFLAGS) $< -o $(BUILD_DIR)/$@
115 : edgomez 824
116 :     #-----------------------------------------------------------------------------
117 :     # Static Library
118 :     #-----------------------------------------------------------------------------
119 :    
120 : edgomez 1382 $(STATIC_LIB): $(BUILD_DIR) $(OBJECTS)
121 :     @echo " L: $(@F)"
122 : Isibaar 2199 $(SILENT)cd $(BUILD_DIR) && $(AR) rc $(@F) $(OBJECTS) && $(RANLIB) $(@F)
123 : edgomez 824
124 :     #-----------------------------------------------------------------------------
125 :     # Shared Library
126 : edgomez 1382 #
127 :     # NB: This rule is used a nasty way by the MacOSX module build process
128 :     # In this only case, it uses the SPECIFIC_LDFLAGS to append an additionnal
129 :     # linking step:
130 :     # 1/ it links a pre shared lib (libxvidcore.so-temp.4)
131 :     # 2/ it links that pre shared lib outputing the real shared lib (module)
132 :     # In all other cases this rule is straight forward and simple.
133 :     # PRE_SHARED_LIB == SHARED_LIB and no nasty command appending.
134 :     #
135 :     # NB': we copy the def file for the win32 target, the file is unused on other
136 :     # platforms
137 : edgomez 824 #-----------------------------------------------------------------------------
138 :    
139 : edgomez 1382 $(SHARED_LIB): $(BUILD_DIR) $(OBJECTS)
140 :     @echo " L: $(@F)"
141 :     @$(INSTALL) -m 644 libxvidcore.def $(BUILD_DIR)/libxvidcore.def
142 : Skal 1617 @$(INSTALL) -m 644 libxvidcore.ld $(BUILD_DIR)/libxvidcore.ld
143 : Isibaar 2199 $(SILENT)cd $(BUILD_DIR) && $(CC) $(LDFLAGS) $(OBJECTS) -o $(PRE_SHARED_LIB) $(SPECIFIC_LDFLAGS)
144 : edgomez 824
145 :     #-----------------------------------------------------------------------------
146 :     # Installation
147 :     #-----------------------------------------------------------------------------
148 :    
149 : edgomez 1382 install: $(BUILD_DIR)/$(STATIC_LIB) $(BUILD_DIR)/$(SHARED_LIB)
150 : Isibaar 2036 @echo " D: $(includedir)"
151 : Isibaar 2199 $(SILENT)$(INSTALL) -d $(DESTDIR)$(includedir)
152 : Isibaar 2036 @echo " I: $(includedir)/xvid.h"
153 : Isibaar 2199 $(SILENT)$(INSTALL) -m 644 $(SRC_DIR)/xvid.h $(DESTDIR)$(includedir)/xvid.h
154 : edgomez 1382 @echo " D: $(libdir)"
155 : Isibaar 2199 $(SILENT)$(INSTALL) -d $(DESTDIR)$(libdir)
156 : Isibaar 2036 @echo " I: $(libdir)/$(STATIC_LIB)"
157 : Isibaar 2199 $(SILENT)$(INSTALL) -m 644 $(BUILD_DIR)/$(STATIC_LIB) $(DESTDIR)$(libdir)/$(STATIC_LIB)
158 : Isibaar 2036 ifeq ($(SHARED_EXTENSION),dll)
159 : Isibaar 2044 @echo " I: $(libdir)/$(IMPORT_LIB)"
160 : Isibaar 2199 $(SILENT)$(INSTALL) -m 644 $(BUILD_DIR)/$(SHARED_LIB).a $(DESTDIR)$(libdir)/$(IMPORT_LIB)
161 : Isibaar 2036 @echo " D: $(bindir)"
162 : Isibaar 2199 $(SILENT)$(INSTALL) -d $(DESTDIR)$(bindir)
163 : Isibaar 2036 @echo " I: $(bindir)/$(SHARED_LIB)"
164 : Isibaar 2199 $(SILENT)$(INSTALL) -m 755 $(BUILD_DIR)/$(SHARED_LIB) $(DESTDIR)$(bindir)/$(SHARED_LIB)
165 : Isibaar 2036 else
166 : edgomez 1382 @echo " I: $(libdir)/$(SHARED_LIB)"
167 : Isibaar 2199 $(SILENT)$(INSTALL) -m 644 $(BUILD_DIR)/$(SHARED_LIB) $(DESTDIR)$(libdir)/$(SHARED_LIB)
168 : Isibaar 2042 @test -z "$(SO_API_MAJOR_LINK)" || \
169 :     $(LN_S) $(SHARED_LIB) $(DESTDIR)$(libdir)/$(SO_API_MAJOR_LINK)
170 :     @test -z "$(SO_LINK)" || \
171 :     $(LN_S) $(SHARED_LIB) $(DESTDIR)$(libdir)/$(SO_LINK)
172 : Isibaar 2036 endif
173 : edgomez 824
174 :     #-----------------------------------------------------------------------------
175 : edgomez 1382 # Platorm specific file -- dumb rules for people executing make before
176 :     # ./configure or even ./bootstrap.sh
177 : edgomez 824 #-----------------------------------------------------------------------------
178 :    
179 : edgomez 1382 platform.inc: configure platform.inc.in
180 : edgomez 824 ./configure
181 :    
182 : edgomez 1382 configure:
183 :     ./bootstrap.sh
184 :    
185 : edgomez 824 #-----------------------------------------------------------------------------
186 :     # .PHONY targets
187 :     #-----------------------------------------------------------------------------
188 :    
189 : edgomez 1382 .PHONY: mrproper distclean clean info \
190 :     list-objects list-targets list-install-path list-cflags
191 : edgomez 824
192 :     clean:
193 : edgomez 1382 @echo " Cl: Build directory"
194 :     @$(RM) $(BUILD_DIR)
195 : edgomez 824
196 :     distclean: clean
197 : edgomez 1382 @echo " Cl: Generated build files"
198 : edgomez 830 @$(RM) platform.inc
199 :     @$(RM) config.log
200 : edgomez 1009 @$(RM) config.status
201 : edgomez 830 @$(RM) autom4te.cache
202 : edgomez 824
203 : edgomez 1382 mrproper: distclean
204 : edgomez 1451 @echo " Cl: Bootstrapped build files"
205 : edgomez 1382 @$(RM) configure
206 :     @$(RM) install-sh
207 :     @$(RM) missing
208 :     @$(RM) config.guess
209 :     @$(RM) mkinstalldirs
210 :     @$(RM) config.sub
211 :    
212 : edgomez 824 list-objects:
213 :     @echo
214 : edgomez 1382 @echo "---------------------------------------------------------------"
215 : edgomez 824 @echo "Object files used for this build"
216 :     @echo "---------------------------------------------------------------"
217 :     @echo
218 :     @echo $(OBJECTS)
219 :     @echo
220 :    
221 :     list-targets:
222 :     @echo
223 : edgomez 1382 @echo "---------------------------------------------------------------"
224 : edgomez 824 @echo "Target Libraries"
225 :     @echo "---------------------------------------------------------------"
226 :     @echo
227 :     @echo Shared library: $(SHARED_LIB)
228 :     @echo Static library: $(STATIC_LIB)
229 :     @echo
230 :    
231 :     list-install-path:
232 :     @echo
233 : edgomez 1382 @echo "---------------------------------------------------------------"
234 : edgomez 824 @echo "Install Paths"
235 :     @echo "---------------------------------------------------------------"
236 :     @echo
237 : edgomez 1382 @echo Include Directory: $(includedir)
238 :     @echo Library Directory: $(libdir)
239 : edgomez 824 @echo
240 :    
241 : edgomez 845 list-cflags:
242 :     @echo
243 : edgomez 1382 @echo "---------------------------------------------------------------"
244 : edgomez 845 @echo "Using CFLAGS"
245 :     @echo "---------------------------------------------------------------"
246 :     @echo
247 :     @echo CFLAGS=$(CFLAGS)
248 :     @echo
249 :    
250 :     info: list-objects list-cflags list-targets list-install-path

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4