PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/apps/Makefile

http://snake-os.googlecode.com/
Makefile | 223 lines | 141 code | 28 blank | 54 comment | 2 complexity | 560ed3c616f06c2f191def90efcd045b MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, 0BSD, BSD-3-Clause, GPL-3.0, AGPL-1.0, CC-BY-SA-3.0
  1. #
  2. # StarSemi BSP GPL source Makefile
  3. # SNAKE OS source
  4. #
  5. # Build time: 2009/08/21
  6. # Author: Douglas Gazineu
  7. #
  8. #
  9. CC?=arm-linux-gcc
  10. APP_DIR=$(shell pwd)
  11. TOOLS_DIR=$(APP_DIR)/../tools
  12. ROOTFS_DIR=$(APP_DIR)/../rootfs
  13. DEF_DIR=${ROOTFS_DIR}/default
  14. TARGET_ROOT=${ROOTFS_DIR}/target
  15. KERNELDIR=$(APP_DIR)/../kernels/linux
  16. INSTALL_PATH?=${ROOTFS_DIR}/target
  17. PARAM?= CC=arm-linux-gcc DESTDIR=$(TARGET_ROOT)
  18. install: build_image to_install star_auto_install
  19. to_install:
  20. # BUSYBOX
  21. make PREFIX=$(TARGET_ROOT) -j3 -C busybox install CROSS_COMPILE="arm-linux-"
  22. # SAMBA
  23. cp $(APP_DIR)/samba/source/bin/smbd ${TARGET_ROOT}/bin
  24. cp $(APP_DIR)/samba/source/bin/nmbd ${TARGET_ROOT}/bin
  25. # E2FSPROGS
  26. rm ${TARGET_ROOT}/sbin/mke2fs
  27. cp $(APP_DIR)/e2fsprogs/misc/mke2fs ${TARGET_ROOT}/sbin
  28. cp $(APP_DIR)/e2fsprogs/e2fsck/e2fsck ${TARGET_ROOT}/sbin
  29. ln -sf mke2fs ${TARGET_ROOT}/sbin/mkfs.ext2
  30. ln -sf mke2fs ${TARGET_ROOT}/sbin/mkfs.ext3
  31. # HASERL
  32. cp $(APP_DIR)/haserl/src/haserl ${TARGET_ROOT}/bin
  33. # P910ND
  34. cp $(APP_DIR)/p910nd/p910nd ${TARGET_ROOT}/bin
  35. # NTFS-3G
  36. cp $(APP_DIR)/ntfs-3g/src/.libs/ntfs-3g ${TARGET_ROOT}/bin
  37. cp -a $(APP_DIR)/ntfs-3g/libntfs-3g/.libs/libntfs-3g.so* ${TARGET_ROOT}/lib
  38. # INADYN
  39. cp $(APP_DIR)/inadyn/bin/linux/inadyn ${TARGET_ROOT}/bin
  40. # HD-IDLE
  41. #cp $(APP_DIR)/hd-idle/hd-idle ${TARGET_ROOT}/bin
  42. # NTPCLIENT
  43. cp $(APP_DIR)/ntpclient/ntpclient ${TARGET_ROOT}/bin
  44. # SMBENCRYPT
  45. cp $(APP_DIR)/smbencrypt/smbencrypt ${TARGET_ROOT}/bin
  46. # DROPBEAR
  47. cp $(APP_DIR)/dropbear/dropbearmulti ${TARGET_ROOT}/bin
  48. ln -s dropbearmulti ${TARGET_ROOT}/bin/dropbear
  49. ln -s dropbearmulti ${TARGET_ROOT}/bin/dropbearkey
  50. ln -s dropbearmulti ${TARGET_ROOT}/bin/dbclient
  51. ln -s dbclient ${TARGET_ROOT}/bin/ssh
  52. ln -s dropbearmulti ${TARGET_ROOT}/bin/scp
  53. # SFTP-SERVER
  54. cp $(APP_DIR)/openssh/sftp-server ${TARGET_ROOT}/bin
  55. # RSYNC
  56. cp $(APP_DIR)/rsync/rsync ${TARGET_ROOT}/bin
  57. # CURL
  58. cp -a $(APP_DIR)/curl/lib/.libs/libcurl.so* ${TARGET_ROOT}/lib
  59. #LIBEVENT
  60. cp -a $(APP_DIR)/libevent/.libs/libevent.so* ${TARGET_ROOT}/lib
  61. # TRANSMISSION
  62. make -C transmission install
  63. # VSFTPD
  64. cp $(APP_DIR)/vsftpd/vsftpd ${TARGET_ROOT}/bin
  65. # OPKG
  66. # IPKG
  67. cp $(APP_DIR)/opkg/src/opkg-cl ${TARGET_ROOT}/bin
  68. # Clean up SVN
  69. find ${TARGET_ROOT} -name ".svn" | xargs rm -rf
  70. build_image: to_build_image star_auto_build
  71. to_build_image:
  72. # BUSYBOX
  73. if [ ! -e busybox/.config ] ; then cp busybox/busybox_defconfig busybox/.config; make oldconfig -C busybox; fi
  74. make PREFIX=$(TARGET_ROOT) CONFIG_PREFIX=$(TARGET_ROOT) -j3 -C busybox CROSS_COMPILE="arm-linux-"
  75. # SAMBA
  76. cd samba/source ; \
  77. ac_cv_sizeof_int=4 ac_cv_sizeof_long=4 ac_cv_sizeof_short=2 \
  78. samba_cv_FTRUNCATE_NEEDS_ROOT=no samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no \
  79. samba_cv_HAVE_BROKEN_GETGROUPS=no samba_cv_HAVE_BROKEN_READDIR=no \
  80. samba_cv_HAVE_FCNTL_LOCK=yes samba_cv_HAVE_FNMATCH=yes \
  81. samba_cv_HAVE_FTRUNCATE_EXTEND=no samba_cv_HAVE_IFACE_AIX=no \
  82. samba_cv_HAVE_IFACE_IFCONF=yes samba_cv_HAVE_IFACE_IFREQ=yes \
  83. samba_cv_HAVE_INO64_T=yes samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no \
  84. samba_cv_HAVE_OFF64_T=yes samba_cv_HAVE_ROOT=yes \
  85. samba_cv_HAVE_SECURE_MKSTEMP=yes samba_cv_HAVE_SHARED_MMAP=yes \
  86. samba_cv_HAVE_STRUCT_FLOCK64=yes samba_cv_HAVE_SYSV_IPC=no \
  87. samba_cv_HAVE_TRUNCATED_SALT=no samba_cv_HAVE_UNION_SEMUN=no \
  88. samba_cv_HAVE_UNSIGNED_CHAR=yes samba_cv_NEED_SGI_SEMUN_HACK=no \
  89. samba_cv_REPLACE_INET_NTOA=no samba_cv_SIZEOF_INO_T=4 \
  90. samba_cv_SIZEOF_OFF_T=4 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes \
  91. samba_cv_USE_SETRESUID=no samba_cv_USE_SETREUID=yes \
  92. samba_cv_USE_SETEUID=yes samba_cv_USE_SETUIDX=no \
  93. samba_cv_have_longlong=yes samba_cv_have_setresgid=no \
  94. samba_cv_have_setresuid=no samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \
  95. CPPFLAGS="-D_GNU_SOURCE -DNDEBUG -DUSE_MMAP -DSHMEM_SIZE=524288 -Dfcntl=fcntl64" CFLAGS=" -pipe -Os -march=armv4t " \
  96. CC=arm-linux-gcc LD=arm-linux-ld AR=arm-linux-ar RANLIB=arm-linux-ranlib ./configure --host=arm-linux \
  97. --prefix=/bin --bindir=/bin --sbindir=/bin --sharedstatedir=/var --localstatedir=/var --sysconfdir=/etc --with-privatedir=/etc \
  98. --with-lockdir=/var --with-piddir=/var --libexecdir=/bin --with-logfilebase=/var --libdir=/etc --with-configdir=/etc \
  99. --without-syslog --disable-cups --with-sendfile-support --without-winbind
  100. make -j3 -C samba/source CFLAGS="-pipe -Os -march=armv4t"
  101. # E2FSPROGS
  102. cd e2fsprogs ; \
  103. CC=arm-linux-gcc LD=arm-linux-ld RANLIB=arm-linux-ranlib CROSS_COMPILE=arm-linux- ./configure --host=arm-linux --build=i686-pc-linux-gnu --enable-maintainer-mode=no --enable-verbose-makecmds=no --enable-compression=no --enable-htree --enable-profile=no --enable-checker=no --enable-jbd-debug=no --enable-blkid-debug=no --disable-testio-debug --disable-nls --without-libintl-prefix --without-libiconv-prefix
  104. make -j3 -C e2fsprogs CC=arm-linux-gcc CROSS_COMPILE="arm-linux-" CFLAGS="-pipe -Os -march=armv4t"
  105. # INADYN
  106. make -j3 -C inadyn CC=arm-linux-gcc CROSS_COMPILE="arm-linux-" CFLAGS="-pipe -Os -march=armv4t"
  107. # HD-IDLE
  108. #make -j3 -C hd-idle CC=arm-linux-gcc CROSS_COMPILE="arm-linux-" CFLAGS="-pipe -Os -march=armv4t"
  109. # HASERL
  110. cd haserl ; \
  111. ./configure \
  112. --prefix=$(shell pwd) --build=arm-linux-uclibc --target=arm-linux-uclibc --host=i486-linux-gnu CFLAGS="-Os -frename-registers -march=armv4t"
  113. make -j3 -C haserl CROSS_COMPILE="arm-linux-"
  114. # P910ND
  115. cd p910nd ; \
  116. sed -ri 's,#define\t\tLOCKFILE.*,#define\t\tLOCKFILE\t\t"/var/lock-p910%cd",g' p910nd.c ; \
  117. sed -ri 's,#define\t\tPIDFILE.*,#define\t\tPIDFILE\t\t"/var/run-p910%cd.pid",g' p910nd.c
  118. make -j3 -C p910nd CROSS="arm-linux-" CONFIGDIR="/etc" BINDIR="/bin"
  119. # NTFS-3G
  120. cd ntfs-3g ; \
  121. ./configure \
  122. --build=arm-linux --target=arm-linux --host=i486-linux-gnu CFLAGS="-Os -frename-registers -march=armv4t"
  123. make -j3 -C ntfs-3g CROSS_COMPILE="arm-linux-"
  124. # NTPCLIENT
  125. make -j3 -C ntpclient CROSS_COMPILE="arm-linux-"
  126. # LIBDES (Required for smbencrypt)
  127. make -j3 -C libdes CFLAGS="-Os -fomit-frame-pointer -march=armv4t"
  128. # SMBENCRYPT
  129. rm -f smbencrypt/des.h smbencrypt/libdes.a
  130. ln -s ../libdes/des.h smbencrypt/des.h
  131. ln -s ../libdes/libdes.a smbencrypt/libdes.a
  132. make -j3 -C smbencrypt CFLAGS="-Os -fomit-frame-pointer -march=armv4t"
  133. # DROPBEAR
  134. cd dropbear ; \
  135. CC=arm-linux-gcc LD=arm-linux-ld RANLIB=arm-linux-ranlib ./configure --host=arm-linux \
  136. --disable-zlib --disable-largefile --disable-pam --disable-openpty --disable-syslog --disable-shadow --disable-lastlog --disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpx --disable-loginfunc --disable-pututline --disable-pututxline
  137. make -j3 -C dropbear CC="arm-linux-gcc" PROGRAMS="dropbear dropbearkey dbclient scp" MULTI=1
  138. # OPENSSL (Required for curl, transmission, sftp-server)
  139. cd openssl ; \
  140. ./Configure dist
  141. cd openssl ; \
  142. make CC="arm-linux-gcc" AR="arm-linux-ar r" RANLIB="arm-linux-ranlib"
  143. # OPENSSH (sftp-server)
  144. cd openssh ; \
  145. ./configure CC=arm-linux-gcc CPPFLAGS=-I~/include --build=arm-linux-uclibc --target=arm-linux-uclibc --host=i486-linux-gnu CFLAGS="-Os -frename-registers -march=armv4" --with-ssl-dir=../openssl --disable-etc-default-login --prefix=
  146. make -j3 -C openssh
  147. # RSYNC
  148. cd rsync ; \
  149. ./configure CC=arm-linux-gcc --build=arm-linux-uclibc --target=arm-linux-uclibc --host=i486-linux-gnu CFLAGS="-Os -frename-registers -march=armv4" --disable-debug --prefix=
  150. # rsync build often fails the first time
  151. make -j3 -C rsync || make -j3 -C rsync
  152. # CURL (Required for transmission)
  153. # add HAVECRYPTO="yes" OPENSSL_ENABLED="1" to enable ssl support
  154. # disabled because otherwise curl gets too large
  155. cd curl ;\
  156. ./configure \
  157. --prefix=$(shell pwd) --build=arm-linux-uclibc --target=arm-linux-uclibc --host=i486-linux-gnu CFLAGS="-Os -s -frename-registers -march=armv4" CPPFLAGS="-I${APP_DIR}/openssl/include/ -I${APP_DIR}/openssl/include/openssl/" LIBS="${APP_DIR}/openssl/libssl.a ${APP_DIR}/openssl/libcrypto.a" \
  158. --with-ssl=../openssl \
  159. --disable-manual --without-random --disable-verbose --disable-debug \
  160. --disable-cookies --disable-dict --disable-sspi
  161. make -j3 -C curl CROSS_COMPILE="arm-linux-"
  162. # OPKG
  163. cd opkg ;\
  164. ./configure CC=arm-linux-gcc --build=arm-linux-uclibc --target=arm-linux-uclibc --host=arm-linux CFLAGS="-Os -frename-registers -march=armv4" --prefix=$(shell pwd) --with-opkglibdir=/opt --enable-static --disable-shared --disable-gpg --disable-curl --disable-shave
  165. make -j3 -C opkg
  166. #LIBEVENT (Required for transmission)
  167. cd libevent ; \
  168. ./configure CC=arm-linux-gcc --build=arm-linux-uclibc --target=arm-linux-uclibc --host=i486-linux-gnu CFLAGS="-Os -s -frename-registers -march=armv4" --prefix=
  169. make -j3 -C libevent
  170. make -C transmission
  171. # # VSFTPD
  172. cd vsftpd ;\
  173. make CC=arm-linux-gcc LD=arm-linux-ld AR=arm-linux-ar RANLIB=arm-linux-ranlib CFLAGS="-pipe -Os -march=armv4t"
  174. clean: star_auto_clean
  175. make -C busybox clean
  176. make -C samba/source clean
  177. make -C e2fsprogs clean
  178. make -C haserl clean
  179. make -C ntfs-3g clean
  180. make -C ntpclient clean
  181. make -C libdes clean
  182. make -C smbencrypt clean
  183. make -C dropbear clean
  184. make -C openssl clean
  185. make -C curl clean
  186. # make -C transmission clean
  187. make -C vsftpd clean
  188. make -C inadyn clean
  189. make -C opkg clean
  190. #make -C hd-idle clean
  191. tags:
  192. find . -name *."[chS]" > filelist
  193. ctags -L filelist
  194. rm -f filelist
  195. include star_auto.make