1#include ../common.mak
2
3export SRCBASE := $(shell pwd)
4export BUILD := $(shell (gcc -dumpmachine))
5export HOSTCC := gcc
6export PLATFORM := mipsel-uclibc
7CROSS_COMPILE := mipsel-linux-
8export CROSS_COMPILER := $(CROSS_COMPILE)
9export CONFIGURE := ./configure --host=mipsel-linux --build=$(BUILD)
10export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd)
11export IPKG_TOOLS := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/../../../ipkg-utils-1.7 && pwd)
12export LD_DIR := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/../../../../staging && pwd)
13
14
15export CC := $(CROSS_COMPILE)gcc
16export AR := $(CROSS_COMPILE)ar
17export AS := $(CROSS_COMPILE)as
18export LD := $(CROSS_COMPILE)ld
19export NM := $(CROSS_COMPILE)nm
20export RANLIB := $(CROSS_COMPILE)ranlib
21export STRIP := $(CROSS_COMPILE)strip -R .note -R .comment
22export SIZE := $(CROSS_COMPILE)size
23
24export EXTRACFLAGS := -DBCMWPA2 -fno-delete-null-pointer-checks
25export INSTALLDIR := /opt
26export RANLIB := $(TOOLCHAIN)/bin/mipsel-linux-uclibc-ranlib
27export LD :=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ld
28export CC := $(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc
29export AR := $(TOOLCHAIN)/bin/mipsel-linux-uclibc-ar
30export STRIP := $(TOOLCHAIN)/bin/mipsel-linux-uclibc-strip
31export SIZE := $(TOOLCHAIN)/bin/mipsel-linux-size
32#srcdir=source
33srcdir=source3
34
35SMBCFLAGS = $(EXTRACFLAGS) -Os -ffunction-sections -fdata-sections
36SMBLDFLAGS = -ffunction-sections -fdata-sections -Wl,--gc-sections 
37
38
39SMBCFLAGS += -DMAX_DEBUG_LEVEL="-1"
40
41
42all: .conf apps
43
44apps: .conf
45	mkdir -p $(srcdir)/bin
46	@sh config_genconfig
47	$(MAKE) -C $(srcdir) all
48
49.conf:
50	cd $(srcdir) && \
51	ac_cv_lib_resolv_dn_expand=no \
52	ac_cv_lib_resolv__dn_expand=no \
53	ac_cv_lib_resolv___dn_expand=no \
54	ac_cv_func_prctl=no \
55	SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes \
56	linux_getgrouplist_ok=no \
57	samba_cv_fpie=no \
58	samba_cv_have_longlong=yes \
59	samba_cv_HAVE_INO64_T=yes \
60	samba_cv_HAVE_OFF64_T=yes \
61	samba_cv_HAVE_STRUCT_FLOCK64=yes \
62	samba_cv_SIZEOF_OFF_T=yes \
63	samba_cv_HAVE_MMAP=yes \
64	samba_cv_HAVE_FTRUNCATE_EXTEND=yes \
65	samba_cv_REPLACE_READDIR=no \
66	samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no \
67	samba_cv_HAVE_SENDFILE=yes \
68	samba_cv_HAVE_WRFILE_KEYTAB=yes \
69	samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes \
70	samba_cv_HAVE_IFACE_IFCONF=yes \
71	samba_cv_have_setresgid=yes \
72	samba_cv_have_setresuid=yes \
73	samba_cv_USE_SETRESUID=yes \
74	samba_cv_USE_SETREUID=yes \
75	samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \
76	samba_cv_REALPATH_TAKES_NULL=no \
77	samba_cv_HAVE_FCNTL_LOCK=yes \
78	samba_cv_HAVE_SECURE_MKSTEMP=yes \
79	samba_cv_HAVE_NATIVE_ICONV=no \
80	samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no \
81	samba_cv_HAVE_BROKEN_GETGROUPS=no \
82	samba_cv_HAVE_BROKEN_READDIR_NAME=no \
83	samba_cv_HAVE_C99_VSNPRINTF=yes \
84	samba_cv_HAVE_DEV64_T=no \
85	samba_cv_HAVE_DEVICE_MAJOR_FN=yes \
86	samba_cv_HAVE_DEVICE_MINOR_FN=yes \
87	samba_cv_HAVE_IFACE_AIX=no \
88	samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no \
89	samba_cv_HAVE_KERNEL_SHARE_MODES=yes \
90	samba_cv_HAVE_MAKEDEV=yes \
91	samba_cv_HAVE_TRUNCATED_SALT=no \
92	samba_cv_HAVE_UNSIGNED_CHAR=no \
93	samba_cv_HAVE_WORKING_AF_LOCAL=yes \
94	samba_cv_HAVE_Werror=yes \
95	samba_cv_REPLACE_INET_NTOA=no \
96	samba_cv_SIZEOF_DEV_T=yes \
97	samba_cv_SIZEOF_INO_T=yes \
98	samba_cv_SIZEOF_TIME_T=no \
99	samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \
100	CPPFLAGS="-DNDEBUG -DSHMEM_SIZE=524288 -Dfcntl=fcntl64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -D_LARGE_FILES=1 -DAPP_IPKG=1" \
101	CFLAGS="$(SMBCFLAGS)" CC=$(CC) LD=$(LD) AR=$(AR) RANLIB=$(RANLIB) \
102	./configure --host=mipsel-linux -build=i386-pc-linux-gnu --prefix=/opt --bindir=/opt/bin --sbindir=/opt/sbin --libdir=/opt/lib --localstatedir=/opt/var/samba --with-configdir=/opt/etc/samba --with-rootsbindir=/opt/sbin --with-piddir=/opt/var/samba --with-privatedir=/opt/etc/samba --with-lockdir=/opt/var/lock --with-syslog --with-included-popt=no --with-krb5=no --with-libsmbclient=yes --with-shared-modules=MODULES --disable-static --disable-cups --disable-iprint --disable-pie --disable-fam --disable-dmalloc --disable-krb5developer --disable-developer --disable-debug --without-ads --without-acl-support --without-ldap --without-cifsmount --without-cifsupcall --without-cluster-support --without-utmp --without-winbind --without-quotas --without-sys-quotas
103	touch .conf
104	mkdir -p $(srcdir)/bin
105
106clean:
107	-$(MAKE) -C $(srcdir) distclean
108	@rm -f .conf
109
110distclean: clean
111	@find $(srcdir) -name config.h | xargs rm -f
112	@find $(srcdir) -name Makefile | xargs rm -f
113	@find $(srcdir) -name config.status | xargs rm -f
114	@find $(srcdir) -name config.cache | xargs rm -f
115
116install: all
117	@install -d $(INSTALLDIR)/usr/bin/
118	@install -d $(INSTALLDIR)/usr/sbin/
119	@install -d $(INSTALLDIR)/usr/lib/
120	@install -D $(srcdir)/bin/smbd $(INSTALLDIR)/usr/sbin/smbd
121	@install -D $(srcdir)/bin/nmbd $(INSTALLDIR)/usr/sbin/nmbd
122	@install -D $(srcdir)/bin/smbpasswd $(INSTALLDIR)/usr/bin/smbpasswd
123	@install -D $(srcdir)/bin/libsmbclient.so $(INSTALLDIR)/usr/lib/libsmbclient.so
124#	@install -D $(srcdir)/bin/libbigballofmud.so $(INSTALLDIR)/usr/lib/libbigballofmud.so
125###############################Charles Modify##########	
126
127	$(STRIP) -s $(INSTALLDIR)/usr/sbin/smbd
128	$(STRIP) -s $(INSTALLDIR)/usr/sbin/nmbd
129	$(STRIP) -s $(INSTALLDIR)/usr/bin/smbpasswd
130	$(STRIP) -s $(INSTALLDIR)/usr/lib/libsmbclient.so
131	# do not strip shared library, it will be optimized by libfoo.pl
132	# $(STRIP) -s $(INSTALLDIR)/usr/lib/libbigballofmud.so
133