|
| 1 | +# Module.mk for lzma module |
| 2 | +# Copyright (c) 2011 Rene Brun and Fons Rademakers |
| 3 | +# |
| 4 | +# Author: Fons Rademakers, 15/6/2011 |
| 5 | + |
| 6 | +MODNAME := lzma |
| 7 | +MODDIR := $(ROOT_SRCDIR)/core/$(MODNAME) |
| 8 | +MODDIRS := $(MODDIR)/src |
| 9 | +MODDIRI := $(MODDIR)/inc |
| 10 | + |
| 11 | +LZMADIR := $(MODDIR) |
| 12 | +LZMADIRS := $(LZMADIR)/src |
| 13 | +LZMADIRI := $(LZMADIR)/inc |
| 14 | + |
| 15 | +LZMAVERS := xz-5.0.3 |
| 16 | +ifeq ($(BUILTINLZMA),yes) |
| 17 | +LZMALIBDIRS := $(call stripsrc,$(MODDIRS)/$(LZMAVERS)) |
| 18 | +LZMALIBDIRI := -I$(LZMALIBDIRS)/src/liblzma/api |
| 19 | +else |
| 20 | +LZMALIBDIRS := |
| 21 | +LZMALIBDIRI := $(LZMAINCDIR:%=-I%) |
| 22 | +endif |
| 23 | + |
| 24 | +##### liblzma.a ##### |
| 25 | +ifeq ($(BUILTINLZMA),yes) |
| 26 | +LZMALIBS := $(MODDIRS)/$(LZMAVERS).tar.gz |
| 27 | +ifeq ($(PLATFORM),win32) |
| 28 | +LZMALIBA := $(LZMALIBDIRS)/objs/liblzma.lib |
| 29 | +LZMALIB := $(LPATH)/liblzma.lib |
| 30 | +ifeq (yes,$(WINRTDEBUG)) |
| 31 | +LZMACFG := "liblzma - Win32 Debug Multithreaded" |
| 32 | +else |
| 33 | +LZMACFG := "liblzma - Win32 Release Multithreaded" |
| 34 | +endif |
| 35 | +else |
| 36 | +LZMALIBA := $(LZMALIBDIRS)/src/liblzma/.libs/liblzma.a |
| 37 | +LZMALIB := $(LPATH)/liblzma.a |
| 38 | +endif |
| 39 | +LZMALIBDEP := $(LZMALIB) |
| 40 | +else |
| 41 | +LZMALIBA := $(LZMALIBDIR) $(LZMACLILIB) |
| 42 | +LZMALIB := $(LZMALIBDIR) $(LZMACLILIB) |
| 43 | +LZMALIBDEP := |
| 44 | +endif |
| 45 | + |
| 46 | +##### ZipLZMA, part of libCore ##### |
| 47 | +LZMAH := $(MODDIRI)/ZipLZMA.h |
| 48 | +LZMAS := $(MODDIRS)/ZipLZMA.c |
| 49 | +LZMAO := $(call stripsrc,$(LZMAS:.c=.o)) |
| 50 | + |
| 51 | +LZMADEP := $(LZMAO:.o=.d) |
| 52 | + |
| 53 | +# used in the main Makefile |
| 54 | +ALLHDRS += $(patsubst $(MODDIRI)/%.h,include/%.h,$(LZMAH)) |
| 55 | + |
| 56 | +# include all dependency files |
| 57 | +INCLUDEFILES += $(LZMADEP) |
| 58 | + |
| 59 | +##### local rules ##### |
| 60 | +.PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME) |
| 61 | + |
| 62 | +include/%.h: $(LZMADIRI)/%.h |
| 63 | + cp $< $@ |
| 64 | + |
| 65 | +ifeq ($(BUILTINLZMA),yes) |
| 66 | +$(LZMALIB): $(LZMALIBA) |
| 67 | +ifeq ($(PLATFORM),aix5) |
| 68 | + ar rv $@ $(LZMALIBDIRS)/src/liblzma/.libs/*.o |
| 69 | +else |
| 70 | + cp $< $@ |
| 71 | + @(if [ $(PLATFORM) = "macosx" ]; then \ |
| 72 | + ranlib $@; \ |
| 73 | + fi) |
| 74 | +endif |
| 75 | + |
| 76 | +$(LZMALIBA): $(LZMALIBS) |
| 77 | + $(MAKEDIR) |
| 78 | +ifeq ($(PLATFORM),win32) |
| 79 | +ifneq ($(ROOT_OBJDIR),$(ROOT_SRCDIR)) |
| 80 | + @$(RSYNC) --exclude '.svn' --exclude '*.lib' $(LZMADIRS)/win $(call stripsrc,$(LZMADIRS)) |
| 81 | +endif |
| 82 | + @(if [ -d $(LZMALIBDIRS) ]; then \ |
| 83 | + rm -rf $(LZMALIBDIRS); \ |
| 84 | + fi; \ |
| 85 | + echo "*** Building $@..."; \ |
| 86 | + cd $(call stripsrc,$(LZMADIRS)); \ |
| 87 | + if [ ! -d $(LZMAVERS) ]; then \ |
| 88 | + gunzip -c $(LZMALIBS) | tar xf -; \ |
| 89 | + fi; \ |
| 90 | + cd $(LZMAVERS)/builds/win32/visualc; \ |
| 91 | + cp ../../../../win/lzma.mak .; \ |
| 92 | + cp ../../../../win/lzma.dep .; \ |
| 93 | + unset MAKEFLAGS; \ |
| 94 | + nmake -nologo -f lzma.mak \ |
| 95 | + CFG=$(LZMACFG) \ |
| 96 | + NMAKECXXFLAGS="$(BLDCXXFLAGS) -D_CRT_SECURE_NO_DEPRECATE") |
| 97 | +else |
| 98 | + @(if [ -d $(LZMALIBDIRS) ]; then \ |
| 99 | + rm -rf $(LZMALIBDIRS); \ |
| 100 | + fi; \ |
| 101 | + echo "*** Building $@..."; \ |
| 102 | + cd $(call stripsrc,$(LZMADIRS)); \ |
| 103 | + if [ ! -d $(LZMAVERS) ]; then \ |
| 104 | + gunzip -c $(LZMALIBS) | tar xf -; \ |
| 105 | + fi; \ |
| 106 | + cd $(LZMAVERS); \ |
| 107 | + LZMACC="$(CC)"; \ |
| 108 | + if [ "$(CC)" = "icc" ]; then \ |
| 109 | + LZMACC="icc -wd188 -wd181"; \ |
| 110 | + fi; \ |
| 111 | + if [ $(ARCH) = "alphacxx6" ]; then \ |
| 112 | + LZMACC="cc"; \ |
| 113 | + fi; \ |
| 114 | + if [ $(ARCH) = "linux" ]; then \ |
| 115 | + LZMACC="$$LZMACC -m32"; \ |
| 116 | + LZMA_CFLAGS="-m32"; \ |
| 117 | + fi; \ |
| 118 | + if [ $(ARCH) = "linuxx8664gcc" ]; then \ |
| 119 | + LZMACC="$$LZMACC -m64"; \ |
| 120 | + LZMA_CFLAGS="-m64"; \ |
| 121 | + fi; \ |
| 122 | + if [ $(ARCH) = "linuxicc" ]; then \ |
| 123 | + LZMACC="$$LZMACC -m32"; \ |
| 124 | + LZMA_CFLAGS="-m32"; \ |
| 125 | + fi; \ |
| 126 | + if [ $(ARCH) = "linuxx8664icc" ]; then \ |
| 127 | + LZMACC="$$LZMACC -m64"; \ |
| 128 | + LZMA_CFLAGS="-m64"; \ |
| 129 | + fi; \ |
| 130 | + if [ $(ARCH) = "macosx" ]; then \ |
| 131 | + LZMACC="$$LZMACC -m32"; \ |
| 132 | + LZMA_CFLAGS="-m32"; \ |
| 133 | + fi; \ |
| 134 | + if [ $(ARCH) = "macosx64" ]; then \ |
| 135 | + LZMACC="$$LZMACC -m64"; \ |
| 136 | + LZMA_CFLAGS="-m64"; \ |
| 137 | + fi; \ |
| 138 | + if [ $(ARCH) = "iossim" ]; then \ |
| 139 | + LZMACC="$$LZMACC -arch i386"; \ |
| 140 | + LZMA_CFLAGS="-arch i386 -isysroot $(IOSSDK) -miphoneos-version-min=$(IOSVERS)"; \ |
| 141 | + LZMA_HOST="--host=i686-apple-darwin10"; \ |
| 142 | + fi; \ |
| 143 | + if [ $(ARCH) = "ios" ]; then \ |
| 144 | + LZMACC="$$LZMACC -arch armv7"; \ |
| 145 | + LZMA_CFLAGS="-arch armv7 -isysroot $(IOSSDK) -miphoneos-version-min=$(IOSVERS)"; \ |
| 146 | + LZMA_HOST="--host=arm-apple-darwin10"; \ |
| 147 | + fi; \ |
| 148 | + if [ $(ARCH) = "solaris64CC5" ]; then \ |
| 149 | + LZMACC="$$LZMACC -m64"; \ |
| 150 | + LZMA_CFLAGS="-m64"; \ |
| 151 | + fi; \ |
| 152 | + if [ $(ARCH) = "sgicc64" ]; then \ |
| 153 | + LZMACC="cc"; \ |
| 154 | + LZMA_CFLAGS="-64"; \ |
| 155 | + fi; \ |
| 156 | + if [ $(ARCH) = "linuxppc64gcc" ]; then \ |
| 157 | + LZMACC="$$LZMACC -m64"; \ |
| 158 | + LZMA_CFLAGS="-m64"; \ |
| 159 | + fi; \ |
| 160 | + if [ $(ARCH) = "hpuxia64acc" ]; then \ |
| 161 | + LZMACC="cc"; \ |
| 162 | + LZMA_CFLAGS="+DD64 -Ae +W863"; \ |
| 163 | + fi; \ |
| 164 | + GNUMAKE=$(MAKE) CC=$$LZMACC CFLAGS="$$LZMA_CFLAGS -O" \ |
| 165 | + ./configure $$LZMA_HOST --with-pic --disable-shared; \ |
| 166 | + cd src/liblzma; \ |
| 167 | + $(MAKE)) |
| 168 | +endif |
| 169 | +endif |
| 170 | + |
| 171 | +all-$(MODNAME): $(LZMAO) |
| 172 | + |
| 173 | +clean-$(MODNAME): |
| 174 | + @rm -f $(LZMAO) |
| 175 | +ifeq ($(BUILTINLZMA),yes) |
| 176 | +ifeq ($(PLATFORM),win32) |
| 177 | + -@(if [ -d $(LZMALIBDIRS)/builds/win32/visualc ]; then \ |
| 178 | + cd $(LZMALIBDIRS)/builds/win32/visualc; \ |
| 179 | + unset MAKEFLAGS; \ |
| 180 | + nmake -nologo -f lzma.mak \ |
| 181 | + CFG=$(LZMACFG) clean; \ |
| 182 | + fi) |
| 183 | +else |
| 184 | + -@(if [ -d $(LZMALIBDIRS) ]; then \ |
| 185 | + cd $(LZMALIBDIRS); \ |
| 186 | + $(MAKE) clean; \ |
| 187 | + fi) |
| 188 | +endif |
| 189 | +endif |
| 190 | + |
| 191 | +clean:: clean-$(MODNAME) |
| 192 | + |
| 193 | +distclean-$(MODNAME): clean-$(MODNAME) |
| 194 | + @rm -f $(LZMADEP) |
| 195 | + @rm -rf $(call stripsrc,$(LZMADIRS)/$(LZMAVERS)) |
| 196 | +ifeq ($(BUILTINLZMA),yes) |
| 197 | + @rm -f $(LZMALIB) |
| 198 | +endif |
| 199 | +ifeq ($(PLATFORM),win32) |
| 200 | +ifneq ($(ROOT_OBJDIR),$(ROOT_SRCDIR)) |
| 201 | + @rm -rf $(call stripsrc,$(LZMADIRS)/win) |
| 202 | +endif |
| 203 | +endif |
| 204 | + |
| 205 | +distclean:: distclean-$(MODNAME) |
| 206 | + |
| 207 | +##### extra rules ###### |
| 208 | +$(LZMAO): $(LZMALIBDEP) |
| 209 | +$(LZMAO): CFLAGS += $(LZMALIBDIRI) |
| 210 | + |
0 commit comments