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