1#
2# Makefile for UNIX - unrar
3#
4# Note: you have to 'make clean' before you can build
5#	the sfx module
6#
7
8# Linux using GCC
9#CXX=g++
10CXXFLAGS=$(CFLAGS) -fPIC -DPIC
11DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DGUI -DSILENT
12STRIP=strip
13DESTDIR=/usr
14RANLIB=ranlib
15
16# Linux using LCC
17#CXX=lcc
18#CXXFLAGS=-O2
19#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
20#STRIP=strip
21#DESTDIR=/usr
22
23# HP UX using aCC
24#CXX=aCC
25#CXXFLAGS=-AA +O2 +Onolimit
26#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
27#STRIP=strip
28#DESTDIR=/usr
29
30# IRIX using GCC
31#CXX=g++
32#CXXFLAGS=-O2
33#DEFINES=-DBIG_ENDIAN -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_BSD_COMPAT -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1
34#STRIP=strip
35#DESTDIR=/usr
36
37# IRIX using MIPSPro (experimental)
38#CXX=CC
39#CXXFLAGS=-O2 -mips3 -woff 1234,1156,3284 -LANG:std
40#DEFINES=-DBIG_ENDIAN -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_BSD_COMPAT -Dint64=int64_t
41#STRIP=strip
42#DESTDIR=/usr
43
44# AIX using xlC (IBM VisualAge C++ 5.0)
45#CXX=xlC
46#CXXFLAGS=-O -qinline -qro -qroconst -qmaxmem=16384 -qcpluscmt
47#DEFINES=-D_LARGE_FILES -D_LARGE_FILE_API
48#LIBS=-lbsd
49#STRIP=strip
50#DESTDIR=/usr
51
52# Solaris using CC
53#CXX=CC
54#CXXFLAGS=-fast -erroff=wvarhidemem
55#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
56#STRIP=strip
57#DESTDIR=/usr
58
59# Solaris using GCC (optimized for UltraSPARC 1 CPU)
60#CXX=g++
61#CXXFLAGS=-O3 -mcpu=v9 -mtune=ultrasparc -m32
62#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
63#STRIP=/usr/ccs/bin/strip
64#DESTDIR=/usr
65
66# Tru64 5.1B using GCC3
67#CXX=g++
68#CXXFLAGS=-O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_XOPEN_SOURCE=500
69#STRIP=strip
70#LDFLAGS=-rpath /usr/local/gcc/lib
71#DESTDIR=/usr
72
73# Tru64 5.1B using DEC C++
74#CXX=cxx
75#CXXFLAGS=-O4 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dint64=long
76#STRIP=strip
77#LDFLAGS=
78#DESTDIR=/usr
79
80# QNX 6.x using GCC
81#CXX=g++
82#CXXFLAGS=-O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fexceptions
83#STRIP=strip
84#LDFLAGS=-fexceptions
85#DESTDIR=/usr
86
87# Cross-compile
88# Linux using arm-linux-g++
89#CXX=arm-linux-g++
90#CXXFLAGS=-O2
91#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
92#STRIP=arm-linux-strip
93#LDFLAGS=-static
94#DESTDIR=/usr
95
96##########################
97
98COMPILE=$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES)
99LINK=$(CXX)
100
101WHAT=UNRAR
102
103UNRAR_OBJ=filestr.o recvol.o rs.o scantree.o
104LIB_OBJ=dll.o
105
106OBJECTS=rar.o strlist.o strfn.o pathfn.o savepos.o smallfn.o global.o file.o filefn.o filcreat.o \
107	archive.o arcread.o unicode.o system.o isnt.o crypt.o crc.o rawread.o encname.o \
108	resource.o match.o timefn.o rdwrfn.o consio.o options.o ulinks.o errhnd.o rarvm.o \
109	rijndael.o getbits.o sha1.o extinfo.o extract.o volume.o list.o find.o unpack.o cmddata.o
110
111.cpp.o:
112	$(COMPILE) -D$(WHAT) -c $<
113
114all:	unrar
115
116install:	install-unrar
117
118uninstall:	uninstall-unrar
119
120clean:
121	@rm -f *.o *.bak *~
122
123unrar:	$(OBJECTS) $(UNRAR_OBJ)
124	@rm -f unrar
125	$(LINK) -o unrar $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS)
126	$(STRIP) unrar
127
128sfx:	WHAT=SFX_MODULE
129sfx:	$(OBJECTS)
130	@rm -f default.sfx
131	$(LINK) -o default.sfx $(LDFLAGS) $(OBJECTS)
132	$(STRIP) default.sfx
133
134lib:	WHAT=RARDLL
135lib:	$(OBJECTS) $(LIB_OBJ) $(UNRAR_OBJ)
136	@rm -f libunrar.so.3
137	$(LINK) -shared -o libunrar.so.3 $(LDFLAGS) $(OBJECTS) $(LIB_OBJ) $(UNRAR_OBJ)
138
139liba:	WHAT=RARDLL
140liba:	$(OBJECTS) $(LIB_OBJ) $(UNRAR_OBJ)
141	@rm -f libunrar.a
142	$(AR) rc libunrar.a $(OBJECTS) $(LIB_OBJ) $(UNRAR_OBJ)
143	$(RANLIB) libunrar.a
144
145install-unrar:
146			install unrar $(DESTDIR)/bin
147
148uninstall-unrar:
149			rm -f $(DESTDIR)/bin/unrar
150
151install-lib:
152		install libunrar.so $(DESTDIR)/lib
153
154uninstall-lib:
155		rm -f $(DESTDIR)/lib/libunrar.so
156