1 |
#/************************************************************************** |
############################################################################## |
2 |
# * |
# |
3 |
# * linux makefile |
# - Unified Makefile for XviD for *nix environments - |
4 |
# * |
# |
5 |
# * nasm args: |
# Copyright(C) 2003 Edouard Gomez <ed.gomez@free.fr> |
6 |
# * -f fmt elf (linux), coff (djgpp) |
# |
7 |
# * -DPREFIX add '_' prefix to symbol names |
# |
8 |
# * |
# Description: |
9 |
# * libso: |
# This Makefile allows building XviD sources to obtain a shared library |
10 |
# * (-lm not neccessary if using -ffast-math) |
# and a static library. This Makefie uses variables defined in the |
11 |
# * |
# platform.inc file. This platform.inc file is usually created by the |
12 |
# *************************************************************************/ |
# ./configure script whenever a unix shell is available. |
13 |
|
# |
14 |
|
# Nota Bene for mingw32/djgpp users: |
15 |
include Makefile.inc |
# However if you provide a platform.inc file adapted to your OS, then |
16 |
|
# change the include platform.inc to include yourfile.inc and it should |
17 |
CC = gcc |
# work too. |
18 |
#CC=icc |
# |
19 |
#CC = /opt/experimental/bin/gcc # that's where SuSE installs gcc3 |
# |
20 |
|
############################################################################## |
|
CFLAGS = -DARCH_X86 -DLINUX |
|
|
LIBDIR = /usr/local/lib |
|
|
|
|
|
ifeq ($(CC),icc) |
|
|
CFLAGS+= -O3 -ip -tpp6 -xM # -tpp7 might be faster (P4 optmization)... |
|
|
CFLAGS+= -I/opt/intel/compiler50/ia32/include -I/opt/intel/compiler50/ia32/substitute_headers/ |
|
|
|
|
|
else |
|
|
|
|
|
# CFLAGS += -funroll-loops -ffast-math -fstrict-aliasing -fomit-frame-pointer |
|
|
# CFLAGS += -fPIC |
|
|
# CFLAGS += -m486 |
|
|
# CFLAGS += -march=pentium -mcpu=pentium |
|
|
# CFLAGS += -march=pentiumpro -mcpu=pentiumpro |
|
|
|
|
|
CFLAGS += -Wall -O3 -funroll-loops -ffast-math -march=pentiumpro -mcpu=pentiumpro |
|
|
CFLAGS += -fstrict-aliasing -fomit-frame-pointer |
|
|
endif |
|
21 |
|
|
22 |
AS = nasm |
include sources.inc |
23 |
AFLAGS = -f elf |
include platform.inc |
|
|
|
|
%.o: %.asm |
|
|
$(AS) $(AFLAGS) $< -o $@ |
|
24 |
|
|
25 |
RM = rm -rf |
RM = rm -rf |
26 |
|
|
27 |
|
############################################################################## |
28 |
|
# |
29 |
|
# Build rules |
30 |
|
# |
31 |
|
############################################################################## |
32 |
|
|
33 |
|
# Our main targets |
34 |
|
STATIC_LIB=libxvidcore.$(STATIC_EXTENSION) |
35 |
|
SHARED_LIB=libxvidcore.$(SHARED_EXTENSION) |
36 |
|
|
37 |
|
# Their Objects |
38 |
|
OBJECTS=$(GENERIC_OBJECTS) |
39 |
|
OBJECTS+=$(DIVX4COMPAT_OBJECTS) |
40 |
|
OBJECTS+=$(ASSEMBLY_OBJECTS) |
41 |
|
OBJECTS+=$(DCT_IA64_OBJECTS) |
42 |
|
|
43 |
|
#----------------------------------------------------------------------------- |
44 |
|
# The default rule |
45 |
|
#----------------------------------------------------------------------------- |
46 |
|
|
47 |
|
.SUFFIXES: .$(OBJECT_EXTENSION) .$(ASSEMBLY_EXTENSION) .c |
48 |
|
|
49 |
|
all: platform.inc $(STATIC_LIB) $(SHARED_LIB) |
50 |
|
@echo |
51 |
|
@echo "---------------------------------------------------------------" |
52 |
|
@echo " XviD has been built, you can now run \"# make install\" as root." |
53 |
|
@echo "---------------------------------------------------------------" |
54 |
|
@echo |
55 |
|
|
56 |
|
#----------------------------------------------------------------------------- |
57 |
|
# Generic assembly rule |
58 |
|
#----------------------------------------------------------------------------- |
59 |
|
|
60 |
|
.$(ASSEMBLY_EXTENSION).$(OBJECT_EXTENSION): |
61 |
|
@echo -n "Assembling $< ... " |
62 |
|
@$(AS) $(AFLAGS) $< -o $@ |
63 |
|
@echo "Done" |
64 |
|
|
65 |
|
#----------------------------------------------------------------------------- |
66 |
|
# Generic C rule |
67 |
|
#----------------------------------------------------------------------------- |
68 |
|
|
69 |
|
.c.$(OBJECT_EXTENSION): |
70 |
|
@echo -n "Compiling $< ... " |
71 |
|
@$(CC) -c $(ARCHITECTURE) $(BUS) $(ENDIANNESS) $(FEATURES) $(SPECIFIC_CFLAGS) $(CFLAGS) $< -o $@ |
72 |
|
@echo "Done" |
73 |
|
|
74 |
|
#----------------------------------------------------------------------------- |
75 |
|
# Static Library |
76 |
|
#----------------------------------------------------------------------------- |
77 |
|
|
78 |
|
$(STATIC_LIB): $(OBJECTS) |
79 |
|
@echo |
80 |
|
@echo -n "Linking the static library... " |
81 |
|
@ar rc $(STATIC_LIB) $(OBJECTS) |
82 |
|
@echo "Done" |
83 |
|
@echo -n "Generating static library's index... " |
84 |
|
@$(RANLIB) $(STATIC_LIB) |
85 |
|
@echo "Done" |
86 |
|
|
87 |
|
#----------------------------------------------------------------------------- |
88 |
|
# Shared Library |
89 |
|
#----------------------------------------------------------------------------- |
90 |
|
|
91 |
|
$(SHARED_LIB): $(OBJECTS) |
92 |
|
@echo |
93 |
|
@echo -n "Linking the shared library... " |
94 |
|
@$(CC) $(LDFLAGS) $(OBJECTS) -o $(SHARED_LIB) $(SPECIFIC_LDFLAGS) |
95 |
|
@echo "Done" |
96 |
|
|
97 |
|
#----------------------------------------------------------------------------- |
98 |
|
# Installation |
99 |
|
#----------------------------------------------------------------------------- |
100 |
|
|
101 |
|
install: all |
102 |
|
@echo |
103 |
|
@echo "+---------- Installing XviD libraries in $(libdir) ----------+" |
104 |
|
@echo |
105 |
|
$(INSTALL) -m 755 $(SHARED_LIB) $(libdir)/$(SHARED_LIB) |
106 |
|
$(INSTALL) -m 755 $(STATIC_LIB) $(libdir)/$(STATIC_LIB) |
107 |
|
@echo |
108 |
|
@echo "+---------- Installing XviD header in $(includedir) ----------+" |
109 |
|
@echo |
110 |
|
$(INSTALL) -m 644 $(SRCDIR)/xvid.h $(includedir)/xvid.h |
111 |
|
@echo |
112 |
|
|
113 |
|
#----------------------------------------------------------------------------- |
114 |
|
# Platorm specific file -- dumb rule for people executing make before |
115 |
|
# ./configure |
116 |
|
#----------------------------------------------------------------------------- |
117 |
|
|
118 |
|
platform.inc: platform.inc.in |
119 |
|
./configure |
120 |
|
|
121 |
|
#----------------------------------------------------------------------------- |
122 |
|
# .PHONY targets |
123 |
|
#----------------------------------------------------------------------------- |
124 |
|
|
125 |
all: $(LIB) $(LIBSO) |
.PHONY: distclean clean info list-objects list-targets list-install-path list-cflags |
|
|
|
|
|
|
|
$(LIB): $(SRC:.c=.o) $(SRC_INTEL:.asm=.o) |
|
|
ar rcs $@ $^ |
|
|
|
|
|
|
|
|
$(LIBSO): $(SRC:.c=.o) $(SRC_INTEL:.asm=.o) |
|
|
$(CC) $(CFLAGS) $^ -shared -lc -lm -o $@ |
|
|
|
|
126 |
|
|
127 |
clean: |
clean: |
128 |
$(RM) `find $(SRCDIR) -name "*.o"` |
@echo -n "Cleaning objects... " |
129 |
|
@$(RM) $(OBJECTS) |
130 |
|
@echo "Done" |
131 |
|
@echo -n "Cleaning static library... " |
132 |
|
@$(RM) $(STATIC_LIB) |
133 |
|
@echo "Done" |
134 |
|
@echo -n "Cleaning shared library... " |
135 |
|
@$(RM) $(SHARED_LIB) |
136 |
|
@echo "Done" |
137 |
|
|
138 |
|
|
139 |
|
distclean: clean |
140 |
|
@echo -n "Cleaning generated files... " |
141 |
|
@$(RM) libxvidcore.def |
142 |
|
@$(RM) platform.inc |
143 |
|
@$(RM) config.log |
144 |
|
@$(RM) autom4te.cache |
145 |
|
@echo "Done" |
146 |
|
|
147 |
|
list-objects: |
148 |
|
@echo |
149 |
|
@echo "Object files used for this build" |
150 |
|
@echo "---------------------------------------------------------------" |
151 |
|
@echo |
152 |
|
@echo $(OBJECTS) |
153 |
|
@echo |
154 |
|
|
155 |
|
list-targets: |
156 |
|
@echo |
157 |
|
@echo "Target Libraries" |
158 |
|
@echo "---------------------------------------------------------------" |
159 |
|
@echo |
160 |
|
@echo Shared library: $(SHARED_LIB) |
161 |
|
@echo Static library: $(STATIC_LIB) |
162 |
|
@echo |
163 |
|
|
164 |
|
list-install-path: |
165 |
|
@echo |
166 |
|
@echo "Install Paths" |
167 |
|
@echo "---------------------------------------------------------------" |
168 |
|
@echo |
169 |
|
@echo Include: $(includedir) |
170 |
|
@echo Library: $(libdir) |
171 |
|
@echo |
172 |
|
|
173 |
|
list-cflags: |
174 |
|
@echo |
175 |
|
@echo "Using CFLAGS" |
176 |
|
@echo "---------------------------------------------------------------" |
177 |
|
@echo |
178 |
|
@echo CFLAGS=$(CFLAGS) |
179 |
|
@echo |
180 |
|
|
181 |
remove-all: |
info: list-objects list-cflags list-targets list-install-path |
|
$(RM) $(DIRS) |
|
|
$(RM) $(DIRS_INTEL) |
|
|
$(RM) $(LIB) |
|
|
$(RM) $(LIBSO) |
|
|
|
|
|
|
|
|
install: libxvidcore.so |
|
|
cp libxvidcore.so $(LIBDIR) # you have to bee root for this |
|
|
/sbin/ldconfig |
|
|
|
|
|
install-test: libxvidcore.so # if you don't want to overwrite previous compile |
|
|
cp libxvidcore.so $(LIBDIR)/libtestcore.so |
|
|
/sbin/ldconfig |
|