summaryrefslogtreecommitdiffstats
path: root/compile.sh
blob: 458758621a2106208eb87470e0955a00e0ebb9b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
#!/bin/sh
# default, host is empty, no cross compilation
# ./compile.sh [ i586-pc-msdosdjgpp | i386-pc-cygwin | i386-pc-mingw32 | powerpc-mac-darwin ]
# Comment the version definition to not compile the library
VER_E2FSPROGS=
VER_PROGSREISERFS=0.3.1-rc8
#VER_NTFSPROGS=1.13.1
VER_NTFSPROGS=2.0.0
VER_LIBEWF=20070512
#VER_LIBEWF=
crosscompile_target=
prefix=/usr/
if [ "$CC" = "gcc295" ];
then
  VER_NTFSPROGS=
fi
if [ -z "$1" ];
then
  compiledir=.
else
  compiledir=$1
  if [ "$1" != "$CC" ];
  then
    VER_E2FSPROGS=1.39
    crosscompile_target=$1
    TESTDISKCC=$crosscompile_target-gcc
#    CC="$crosscompile_target-gcc -mno-cygwin"
    export CC
  fi
fi
prefix=/usr/$crosscompile_target
LD=ld
AR=ar
if [ "X$crosscompile_target" = "Xpowerpc-apple-darwin" ];
then
  AR=$crosscompile_target-ar
  export RANLIB=powerpc-apple-darwin-ranlib
else
  export LD
fi
export AR
LYNX=links
LIBEXT=$compiledir/e2fsprogs-$VER_E2FSPROGS/lib/ext2fs/libext2fs.a
LIBNTFS=$compiledir/ntfsprogs-$VER_NTFSPROGS/libntfs/.libs/libntfs.a
LIBREISER=$compiledir/progsreiserfs-$VER_PROGSREISERFS/libreiserfs/.libs/libreiserfs.a
LIBEWF=$compiledir/ewf-$VER_NTFSPROGS/libewf/.libs/libewf.a
pwd_saved=`pwd`
confdir=`(dirname "$0") 2>/dev/null`
cd $confdir
confdir=`pwd`
cd $pwd_saved

PWDSRC=`pwd|sed 's#^\w:/#/#'`/$compiledir

CONFIGUREOPT=
mkdir -p $compiledir
echo "This script will try to compile e2fsprogs progsreiserfs ntfsprogs libraries"
if [ "$VER_E2FSPROGS" != "" ];
then
CONFIGUREOPT="$CONFIGUREOPT --with-ext2fs-lib=${PWDSRC}/e2fsprogs-${VER_E2FSPROGS}/lib --with-ext2fs-includes=${PWDSRC}/e2fsprogs-${VER_E2FSPROGS}/lib"

if [ ! -e e2fsprogs-$VER_E2FSPROGS.tar.gz ];
then
        $LYNX http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-$VER_E2FSPROGS.tar.gz
fi

if [ -e e2fsprogs-$VER_E2FSPROGS.tar.gz ];
then
  if [ ! -e $compiledir/e2fsprogs-$VER_E2FSPROGS/configure ];
  then
        tar xzf e2fsprogs-$VER_E2FSPROGS.tar.gz -C $compiledir
  fi
fi

if [ -e $compiledir/e2fsprogs-$VER_E2FSPROGS/configure ];
then
  if [ ! -e $compiledir/e2fsprogs-$VER_E2FSPROGS/Makefile ];
  then
  	cd $compiledir/e2fsprogs-$VER_E2FSPROGS
	CC=$TESTDISKCC CFLAGS="$CFLAGS -DOMIT_COM_ERR" ./configure --host=$crosscompile_target --prefix=$prefix
	cd $pwd_saved
  fi
fi

if [ -e $compiledir/e2fsprogs-$VER_E2FSPROGS/Makefile ];
then
  if [ ! -e $LIBEXT ];
  then
	cd $compiledir/e2fsprogs-$VER_E2FSPROGS
	make libs
	cd $pwd_saved
  fi
fi
fi

if [ "$VER_PROGSREISERFS" != "" ];
then
CONFIGUREOPT="$CONFIGUREOPT --with-reiserfs-lib=${PWDSRC}/progsreiserfs-${VER_PROGSREISERFS}/libreiserfs/.libs/ --with-reiserfs-includes=${PWDSRC}/progsreiserfs-${VER_PROGSREISERFS}/include/ --with-dal-lib=${PWDSRC}/progsreiserfs-${VER_PROGSREISERFS}/libdal/.libs/"
if [ ! -e progsreiserfs-$VER_PROGSREISERFS.tar.gz ];
then
        $LYNX http://reiserfs.osdn.org.ua/snapshots/progsreiserfs-$VER_PROGSREISERFS.tar.gz
fi

if [ -e progsreiserfs-$VER_PROGSREISERFS.tar.gz ];
then
  if [ ! -e $compiledir/progsreiserfs-$VER_PROGSREISERFS/configure ];
  then
        tar xzf progsreiserfs-$VER_PROGSREISERFS.tar.gz -C $compiledir
  fi
fi

if [ -e $compiledir/progsreiserfs-$VER_PROGSREISERFS/configure ];
then
  if [ ! -e $compiledir/progsreiserfs-$VER_PROGSREISERFS/Makefile ];
  then
        cd $compiledir/progsreiserfs-$VER_PROGSREISERFS
        ./configure --host=$crosscompile_target --prefix=$prefix --disable-nls --disable-Werror
        cd $pwd_saved
  fi
fi

#vim /home/kmaster/src/testdisk/powerpc-apple-darwin/progsreiserfs-0.3.1-rc8/libtool
#%s/AR="ar"/AR="powerpc-apple-darwin-ar"/
if [ -e $compiledir/progsreiserfs-$VER_PROGSREISERFS/Makefile ];
then
  if [ ! -e $LIBREISER ];
  then
	cd $compiledir/progsreiserfs-$VER_PROGSREISERFS
	make
	cd $pwd_saved
  fi
fi
fi

if [ "$VER_NTFSPROGS" != "" ];
then
CONFIGUREOPT="$CONFIGUREOPT --with-ntfs-lib=${PWDSRC}/ntfsprogs-${VER_NTFSPROGS}/libntfs/.libs/ --with-ntfs-includes=${PWDSRC}/ntfsprogs-${VER_NTFSPROGS}/include/"
if [ ! -e ntfsprogs-$VER_NTFSPROGS.tar.gz ];
then
	$LYNX http://prdownloads.sourceforge.net/linux-ntfs/ntfsprogs-$VER_NTFSPROGS.tar.gz
fi

if [ -e ntfsprogs-$VER_NTFSPROGS.tar.gz ];
then
  if [ ! -e $compiledir/ntfsprogs-$VER_NTFSPROGS/configure ];
  then
	tar xzf ntfsprogs-$VER_NTFSPROGS.tar.gz -C $compiledir
  fi
fi

if [ -e $compiledir/ntfsprogs-$VER_NTFSPROGS/configure ];
then
  if [ ! -e $compiledir/ntfsprogs-$VER_NTFSPROGS/Makefile ];
  then
        cd $compiledir/ntfsprogs-$VER_NTFSPROGS
# --disable-default-device-io-ops is need for NT 4
        CC=$TESTDISKCC ./configure --host=$crosscompile_target --prefix=$prefix --disable-default-device-io-ops
        cd $pwd_saved
  fi
fi

if [ -e $compiledir/ntfsprogs-$VER_NTFSPROGS/Makefile ];
then
  if [ ! -e $LIBNTFS ];
  then
	cd $compiledir/ntfsprogs-$VER_NTFSPROGS
	make libs
	cd $pwd_saved
  fi
fi
fi

if [ "$VER_LIBEWF" != "" ];
then
CONFIGUREOPT="$CONFIGUREOPT --with-ewf-lib=${PWDSRC}/libewf-${VER_LIBEWF}/libewf/.libs/ --with-ewf-includes=${PWDSRC}/libewf-${VER_LIBEWF}/include/"
if [ ! -e libewf-$VER_LIBEWF.tar.gz ];
then
        $LYNX "https://www.uitwisselplatform.nl/frs/?group_id=53&release_id=262"
fi

if [ -e libewf-$VER_LIBEWF.tar.gz ];
then
  if [ ! -e $compiledir/libewf-$VER_LIBEWF/configure ];
  then
	tar xzf libewf-$VER_LIBEWF.tar.gz -C $compiledir
  fi
fi

if [ -e $compiledir/libewf-$VER_LIBEWF/configure ];
then
  if [ ! -e $compiledir/libewf-$VER_LIBEWF/Makefile ];
  then
	cd $compiledir/libewf-$VER_LIBEWF
	CC=$TESTDISKCC ./configure --host=$crosscompile_target --prefix=$prefix
	cd $pwd_saved
  fi
fi

if [ -e $compiledir/libewf-$VER_LIBEWF/Makefile ];
then
  if [ ! -e $LIBEWF ];
  then
	cd $compiledir/libewf-$VER_LIBEWF
	make lib
	cd $pwd_saved
  fi
fi
fi

echo "Try to compile TestDisk"
CC=$TESTDISKCC
export CC

if [ -d $compiledir ];
then
  if [ ! -e $compiledir/Makefile ];
  then
  	cd $compiledir
	if [ "X$crosscompile_target" = 'Xpowerpc-apple-darwin' ];
	then
# libewf should work under MacOSX but it hasn't been tested
		$confdir/configure --host=$crosscompile_target --prefix=$prefix $CONFIGUREOPT --without-ewf
	else
		$confdir/configure --host=$crosscompile_target --prefix=$prefix $CONFIGUREOPT
	fi
	cd $pwd_saved
  fi
  if [ -e $compiledir/Makefile ];
  then
  	cd $compiledir
if [ "X$crosscompile_target" = "Xpowerpc-apple-darwin" ];
then
        make
else
        make static
fi
	cd $pwd_saved
  fi
fi