--- /dev/null
+diff --git a/source/Makefile.in b/source/Makefile.in
+index f360f29..2826aa4 100644
+--- a/source/Makefile.in
++++ b/source/Makefile.in
+@@ -157,8 +157,8 @@ RPC_SERVER_OBJ = rpc_server/srv_lsa.o rpc_server/srv_lsa_nt.o \
+ rpc_server/srv_pipe_hnd.o rpc_server/srv_reg.o rpc_server/srv_reg_nt.o \
+ rpc_server/srv_samr.o rpc_server/srv_samr_nt.o rpc_server/srv_srvsvc.o rpc_server/srv_srvsvc_nt.o \
+ rpc_server/srv_util.o rpc_server/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o \
+- rpc_server/srv_pipe.o rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o \
+- rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o rpc_client/cli_spoolss_notify.o
++ rpc_server/srv_pipe.o rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o
++
+
+ # this includes only the low level parse code, not stuff
+ # that requires knowledge of security contexts
+@@ -200,7 +200,7 @@ SMBD_OBJ1 = smbd/server.o smbd/files.o smbd/chgpasswd.o smbd/connection.o \
+ smbd/vfs.o smbd/vfs-wrap.o smbd/statcache.o \
+ smbd/posix_acls.o lib/sysacls.o \
+ smbd/process.o smbd/service.o smbd/error.o \
+- printing/printfsp.o lib/util_seaccess.o \
++ lib/util_seaccess.o \
+ libsmb/cli_pipe_util.o
+
+ PRINTING_OBJ = printing/pcap.o printing/print_svid.o \
+@@ -213,8 +213,8 @@ MSDFS_OBJ = msdfs/msdfs.o
+
+ SMBD_OBJ = $(SMBD_OBJ1) $(MSDFS_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
+ $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(RPC_CLIENT_OBJ) \
+- $(LOCKING_OBJ) $(PASSDB_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) \
+- $(PRINTBACKEND_OBJ) $(QUOTAOBJS) $(OPLOCK_OBJ) $(NOTIFY_OBJ)
++ $(LOCKING_OBJ) $(PASSDB_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) \
++ $(QUOTAOBJS) $(OPLOCK_OBJ) $(NOTIFY_OBJ)
+
+
+ NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
+@@ -234,7 +234,7 @@ NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
+ $(PROFILE_OBJ) $(LIB_OBJ)
+
+ SWAT_OBJ = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \
+- web/swat.o $(PRINTING_OBJ) $(LIBSMB_OBJ) $(LOCKING_OBJ) \
++ web/swat.o $(LIBSMB_OBJ) $(LOCKING_OBJ) \
+ $(PARAM_OBJ) $(PASSDB_OBJ) $(RPC_PARSE_OBJ) \
+ $(UBIQX_OBJ) $(LIB_OBJ)
+
+diff --git a/source/rpc_server/srv_pipe.c b/source/rpc_server/srv_pipe.c
+index aa89441..34f8beb 100644
+--- a/source/rpc_server/srv_pipe.c
++++ b/source/rpc_server/srv_pipe.c
+@@ -515,7 +515,9 @@ static struct api_cmd api_fd_commands[] =
+ { "wkssvc", "ntsvcs", api_wkssvc_rpc },
+ { "NETLOGON", "lsass", api_netlog_rpc },
+ { "winreg", "winreg", api_reg_rpc },
++#ifdef PRINTING_NOT_DISABLED
+ { "spoolss", "spoolss", api_spoolss_rpc },
++#endif
+ #ifdef WITH_MSDFS
+ { "netdfs", "netdfs" , api_netdfs_rpc },
+ #endif
+diff --git a/source/smbd/close.c b/source/smbd/close.c
+index 2080d5a..1b4c999 100644
+--- a/source/smbd/close.c
++++ b/source/smbd/close.c
+@@ -135,7 +135,9 @@ static int close_normal_file(files_struct *fsp, BOOL normal_close)
+ err1 = -1;
+
+ if (fsp->print_file) {
++#ifdef PRINTING_NOT_DISABLED
+ print_fsp_end(fsp, normal_close);
++#endif
+ file_free(fsp);
+ return 0;
+ }
+diff --git a/source/smbd/fileio.c b/source/smbd/fileio.c
+index 7af01a3..ae1acde 100644
+--- a/source/smbd/fileio.c
++++ b/source/smbd/fileio.c
+@@ -162,8 +162,10 @@ ssize_t write_file(files_struct *fsp, char *data, SMB_OFF_T pos, size_t n)
+ ssize_t total_written = 0;
+ int write_path = -1;
+
++#ifdef PRINTING_NOT_DISABLED
+ if (fsp->print_file)
+ return print_job_write(fsp->print_jobid, data, n);
++#endif
+
+ if (!fsp->can_write) {
+ errno = EPERM;
+diff --git a/source/smbd/lanman.c b/source/smbd/lanman.c
+index 1c6db9c..ee501fc 100644
+--- a/source/smbd/lanman.c
++++ b/source/smbd/lanman.c
+@@ -771,6 +771,7 @@ static void fill_printq_info(connection_struct *conn, int snum, int uLevel,
+ }
+ }
+
++#if PRINTING_NOT_DISABLED
+ /* This function returns the number of files for a given driver */
+ static int get_printerdrivernumber(int snum)
+ {
+@@ -965,7 +966,6 @@ static BOOL api_DosPrintQGetInfo(connection_struct *conn,
+ /****************************************************************************
+ View list of all print jobs on all queues.
+ ****************************************************************************/
+-
+ static BOOL api_DosPrintQEnum(connection_struct *conn, uint16 vuid, char* param, char* data,
+ int mdrcnt, int mprcnt,
+ char **rdata, char** rparam,
+@@ -1066,6 +1066,7 @@ static BOOL api_DosPrintQEnum(connection_struct *conn, uint16 vuid, char* param,
+
+ return True;
+ }
++#endif
+
+ /****************************************************************************
+ get info level for a server list query
+@@ -1902,6 +1903,7 @@ static BOOL api_SamOEMChangePassword(connection_struct *conn,uint16 vuid, char *
+ delete a print job
+ Form: <W> <>
+ ****************************************************************************/
++#ifdef PRINTING_NOT_DISABLED
+ static BOOL api_RDosPrintJobDel(connection_struct *conn,uint16 vuid, char *param,char *data,
+ int mdrcnt,int mprcnt,
+ char **rdata,char **rparam,
+@@ -2092,7 +2094,7 @@ static BOOL api_PrintJobInfo(connection_struct *conn,uint16 vuid,char *param,cha
+
+ return(True);
+ }
+-
++#endif
+
+ /****************************************************************************
+ get info about the server
+@@ -3292,6 +3294,7 @@ struct
+ {"RNetUserGetInfo", RAP_WUserGetInfo, api_RNetUserGetInfo,0},
+ {"NetUserGetGroups", RAP_WUserGetGroups, api_NetUserGetGroups,0},
+ {"NetWkstaGetInfo", RAP_WWkstaGetInfo, api_NetWkstaGetInfo,0},
++#ifdef PRINTING_NOT_DISABLED
+ {"DosPrintQEnum", RAP_WPrintQEnum, api_DosPrintQEnum,0},
+ {"DosPrintQGetInfo", RAP_WPrintQGetInfo, api_DosPrintQGetInfo,0},
+ {"WPrintQueuePause", RAP_WPrintQPause, api_WPrintQueueCtrl,0},
+@@ -3303,16 +3306,19 @@ struct
+ {"RDosPrintJobResume",RAP_WPrintJobContinue, api_RDosPrintJobDel,0},
+ {"WPrintDestEnum", RAP_WPrintDestEnum, api_WPrintDestEnum,0},
+ {"WPrintDestGetInfo", RAP_WPrintDestGetInfo, api_WPrintDestGetInfo,0},
+- {"NetRemoteTOD", RAP_NetRemoteTOD, api_NetRemoteTOD,0},
+ {"WPrintQueuePurge", RAP_WPrintQPurge, api_WPrintQueueCtrl,0},
++#endif
++ {"NetRemoteTOD", RAP_NetRemoteTOD, api_NetRemoteTOD,0},
+ {"NetServerEnum", RAP_NetServerEnum2, api_RNetServerEnum,0},
+ {"WAccessGetUserPerms",RAP_WAccessGetUserPerms,api_WAccessGetUserPerms,0},
+ {"SetUserPassword", RAP_WUserPasswordSet2, api_SetUserPassword,0},
+ {"WWkstaUserLogon", RAP_WWkstaUserLogon, api_WWkstaUserLogon,0},
++#ifdef PRINTING_NOT_DISABLED
+ {"PrintJobInfo", RAP_WPrintJobSetInfo, api_PrintJobInfo,0},
+ {"WPrintDriverEnum", RAP_WPrintDriverEnum, api_WPrintDriverEnum,0},
+ {"WPrintQProcEnum", RAP_WPrintQProcessorEnum,api_WPrintQProcEnum,0},
+ {"WPrintPortEnum", RAP_WPrintPortEnum, api_WPrintPortEnum,0},
++#endif
+ {"SamOEMChangePassword",RAP_SamOEMChgPasswordUser2_P,api_SamOEMChangePassword,0},
+ {NULL, -1, api_Unsupported,0}};
+
+diff --git a/source/smbd/open.c b/source/smbd/open.c
+index 809b842..cb42829 100644
+--- a/source/smbd/open.c
++++ b/source/smbd/open.c
+@@ -790,6 +790,7 @@ files_struct *open_file_shared1(connection_struct *conn,char *fname, SMB_STRUCT_
+ mode_t new_mode = (mode_t)0;
+
+ if (conn->printer) {
++#ifdef PRINTING_NOT_DISABLED
+ /* printers are handled completely differently. Most
+ of the passed parameters are ignored */
+ if (Access)
+@@ -797,6 +798,9 @@ files_struct *open_file_shared1(connection_struct *conn,char *fname, SMB_STRUCT_
+ if (action)
+ *action = FILE_WAS_CREATED;
+ return print_fsp_open(conn, fname);
++#else
++ return NULL;
++#endif
+ }
+
+ fsp = file_new(conn);
+diff --git a/source/smbd/process.c b/source/smbd/process.c
+index 765fdef..358e563 100644
+--- a/source/smbd/process.c
++++ b/source/smbd/process.c
+@@ -546,10 +546,10 @@ struct smb_message_struct
+ /* 0xbd */ { NULL, NULL, 0 },
+ /* 0xbe */ { NULL, NULL, 0 },
+ /* 0xbf */ { NULL, NULL, 0 },
+-/* 0xc0 */ { "SMBsplopen",reply_printopen,AS_USER | QUEUE_IN_OPLOCK },
+-/* 0xc1 */ { "SMBsplwr",reply_printwrite,AS_USER},
+-/* 0xc2 */ { "SMBsplclose",reply_printclose,AS_USER},
+-/* 0xc3 */ { "SMBsplretq",reply_printqueue,AS_USER},
++/* 0xc0 */ { NULL, NULL, 0 /*"SMBsplopen",reply_printopen,AS_USER | QUEUE_IN_OPLOCK*/ },
++/* 0xc1 */ { NULL, NULL, 0 /*"SMBsplwr",reply_printwrite,AS_USER*/ },
++/* 0xc2 */ { NULL, NULL, 0 /*"SMBsplclose",reply_printclose,AS_USER*/ },
++/* 0xc3 */ { NULL, NULL, 0 /*"SMBsplretq",reply_printqueue,AS_USER*/},
+ /* 0xc4 */ { NULL, NULL, 0 },
+ /* 0xc5 */ { NULL, NULL, 0 },
+ /* 0xc6 */ { NULL, NULL, 0 },
+diff --git a/source/smbd/reply.c b/source/smbd/reply.c
+index 0efc29c..6e05b85 100644
+--- a/source/smbd/reply.c
++++ b/source/smbd/reply.c
+@@ -3421,7 +3421,7 @@ int reply_echo(connection_struct *conn,
+ /****************************************************************************
+ Reply to a printopen.
+ ****************************************************************************/
+-
++#ifdef PRINTING_NOT_DISABLED
+ int reply_printopen(connection_struct *conn,
+ char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
+ {
+@@ -3559,6 +3559,7 @@ int reply_printqueue(connection_struct *conn,
+ END_PROFILE(SMBsplretq);
+ return(outsize);
+ }
++#endif
+
+ /****************************************************************************
+ Reply to a printwrite.
+diff --git a/source/smbd/server.c b/source/smbd/server.c
+index d7e9589..13376d8 100644
+--- a/source/smbd/server.c
++++ b/source/smbd/server.c
+@@ -399,7 +399,9 @@ BOOL reload_services(BOOL test)
+
+ ret = lp_load(servicesf,False,False,True);
+
++#ifdef PRINTING_NOT_DISABLED
+ load_printers();
++#endif
+
+ /* perhaps the config filename is now set */
+ if (!test)
+@@ -888,8 +890,10 @@ static void usage(char *pname)
+ if (!locking_init(0))
+ exit(1);
+
++#ifdef PRINTING_NOT_DISABLED
+ if (!print_backend_init())
+ exit(1);
++#endif
+
+ if (!share_info_db_init())
+ exit(1);
+diff --git a/source/smbd/service.c b/source/smbd/service.c
+index 05d29d5..203f45f 100644
+--- a/source/smbd/service.c
++++ b/source/smbd/service.c
+@@ -143,6 +143,7 @@ int find_service(char *service)
+ iService = add_home_service(service,phome_dir);
+ }
+
++#ifdef PRINTING_NOT_DISABLED
+ /* If we still don't have a service, attempt to add it as a printer. */
+ if (iService < 0)
+ {
+@@ -167,6 +168,7 @@ int find_service(char *service)
+ DEBUG(3,("%s is not a valid printer name\n", service));
+ }
+ }
++#endif
+
+ /* Check for default vfs service? Unsure whether to implement this */
+ if (iService < 0)
--- /dev/null
+diff -uNr samba-2.2.12.org//source/configure.in samba-2.2.12/source/configure.in
+--- samba-2.2.12.org//source/configure.in 2004-08-12 20:24:30.000000000 +0200
++++ samba-2.2.12/source/configure.in 2010-03-15 19:12:28.000000000 +0100
+@@ -371,41 +371,7 @@
+ AC_MSG_CHECKING([for LFS support])
+ old_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
+- AC_TRY_RUN([
+-#include <unistd.h>
+-#include <sys/utsname.h>
+-main() {
+-#if _LFS64_LARGEFILE == 1
+- struct utsname uts;
+- char *release;
+- int major, minor;
+-
+- /* Ensure this is glibc 2.2 or higher */
+-#if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
+- int libc_major = __GLIBC__;
+- int libc_minor = __GLIBC_MINOR__;
+-
+- if (libc_major < 2)
+- exit(1);
+- if (libc_minor < 2)
+- exit(1);
+-#endif
+-
+- /* Ensure this is kernel 2.4 or higher */
+-
+- uname(&uts);
+- release = uts.release;
+- major = atoi(strsep(&release, "."));
+- minor = atoi(strsep(&release, "."));
+-
+- if (major > 2 || (major == 2 && minor > 3))
+- exit(0);
+- exit(1);
+-#else
+- exit(1);
+-#endif
+-}
+-], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
++ LINUX_LFS_SUPPORT=yes
+ CPPFLAGS="$old_CPPFLAGS"
+ if test x$LINUX_LFS_SUPPORT = xyes ; then
+ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
+diff -uNr samba-2.2.12.org//source/Makefile.in samba-2.2.12/source/Makefile.in
+--- samba-2.2.12.org//source/Makefile.in 2004-08-12 20:24:19.000000000 +0200
++++ samba-2.2.12/source/Makefile.in 2010-03-15 19:12:23.000000000 +0100
+@@ -702,29 +702,29 @@
+ install: installbin installman installscripts installcp installswat
+
+ installdirs:
+- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(BASEDIR)
+- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(SBINDIR)
+- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(BINDIR)
+- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(LIBDIR)
+- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(VARDIR)
+- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(PIDDIR)
+- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(CODEPAGEDIR)
++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR)
++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(SBINDIR)
++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(BINDIR)
++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(LIBDIR)
++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(VARDIR)
++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(PIDDIR)
++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(CODEPAGEDIR)
+
+ installservers: all installdirs
+- @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS)
++ @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(SPROGS)
+
+ installbin: all installdirs
+- @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS) $(WINBIND_SPROGS)
+- @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(BINDIR) $(LIBDIR) $(VARDIR) $(PROGS) $(WINBIND_PROGS)
++ @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(SPROGS) $(WINBIND_SPROGS)
++ @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(BINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(PROGS) $(WINBIND_PROGS)
+
+ installscripts: installdirs
+- @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(BINDIR) $(SCRIPTS)
++ @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(DESTDIR)/$(BINDIR) $(SCRIPTS)
+
+ installcp: installdirs installbin
+- @$(SHELL) $(srcdir)/script/installcp.sh $(srcdir) $(LIBDIR) $(CODEPAGEDIR) $(BINDIR) $(CODEPAGELIST)
++ @$(SHELL) $(srcdir)/script/installcp.sh $(srcdir) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(CODEPAGEDIR) ../../host/builds/samba2/bin $(CODEPAGELIST)
+
+ installswat: installdirs
+- @$(SHELL) $(srcdir)/script/installswat.sh $(SWATDIR) $(srcdir)
++ @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)/$(SWATDIR) $(srcdir)
+
+ installclientlib:
+ -$(INSTALLCLIENTCMD_SH) bin/libsmbclient.@SHLIBEXT@
+@@ -734,26 +734,26 @@
+
+ # revert to the previously installed version
+ revert:
+- @$(SHELL) $(srcdir)/script/revert.sh $(SBINDIR) $(SPROGS) ${WINBIND_SPROGS}
+- @$(SHELL) $(srcdir)/script/revert.sh $(BINDIR) $(PROGS) $(SCRIPTS) ${WINBIND_PROGS}
++ @$(SHELL) $(srcdir)/script/revert.sh $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(SPROGS) ${WINBIND_SPROGS}
++ @$(SHELL) $(srcdir)/script/revert.sh $(DESTDIR)/$(BINDIR) $(DESTDIR)/$(PROGS) $(DESTDIR)/$(SCRIPTS) ${WINBIND_PROGS}
+
+ installman:
+- @$(SHELL) $(srcdir)/script/installman.sh $(MANDIR) $(srcdir) "@ROFF@"
++ @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)/$(MANDIR) $(srcdir) "@ROFF@"
+
+ uninstall: uninstallman uninstallbin uninstallscripts uninstallcp
+
+ uninstallman:
+- @$(SHELL) $(srcdir)/script/uninstallman.sh $(MANDIR) $(srcdir)
++ @$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)/$(MANDIR) $(srcdir)
+
+ uninstallbin:
+- @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS) $(WINBIND_SPROGS)
+- @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(BASEDIR) $(BINDIR) $(LIBDIR) $(VARDIR) $(PROGS) $(WINBIND_PROGS)
++ @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(SPROGS) $(WINBIND_SPROGS)
++ @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(BINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(PROGS) $(WINBIND_PROGS)
+
+ uninstallscripts:
+- @$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(BINDIR) $(SCRIPTS)
++ @$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(DESTDIR)/$(BINDIR) $(SCRIPTS)
+
+ uninstallcp:
+- @$(SHELL) $(srcdir)/script/uninstallcp.sh $(CODEPAGEDIR) $(CODEPAGELIST)
++ @$(SHELL) $(srcdir)/script/uninstallcp.sh $(DESTDIR)/$(CODEPAGEDIR) $(CODEPAGELIST)
+
+ clean:
+ -rm -f core */*~ *~ */*.o */*.po */*.po32 */*.@SHLIBEXT@* */*.a
+diff -uNr samba-2.2.12.org//source/include/includes.h samba-2.2.12/source/include/includes.h
+--- samba-2.2.12.org//source/include/includes.h 2004-08-12 20:24:29.000000000 +0200
++++ samba-2.2.12/source/include/includes.h 2010-04-24 22:39:31.000000000 +0200
+@@ -322,10 +322,6 @@
+ #include <compat.h>
+ #endif
+
+-#ifdef HAVE_STROPTS_H
+-#include <stropts.h>
+-#endif
+-
+ #ifdef HAVE_POLL_H
+ #include <poll.h>
+ #endif
+diff --git a/source/client/smbmnt.c b/source/client/smbmnt.c
+index 3624898..bb93e2b 100644
+--- a/source/client/smbmnt.c
++++ b/source/client/smbmnt.c
+@@ -13,6 +13,12 @@
+
+ #include <asm/types.h>
+ #include <asm/posix_types.h>
++
++/* sorry, no real idea why this is needed on some toolchains :-(
++ I suspect some include breakage. Anyway, this avoids the build error */
++#if defined(_TIME_H) && !defined(_LINUX_TIME_H)
++#define _LINUX_TIME_H
++#endif
+ #include <linux/smb.h>
+ #include <linux/smb_mount.h>
+ #include <asm/unistd.h>
+diff --git a/source/client/smbmount.c b/source/client/smbmount.c
+index 40e21e1..30e72ac 100644
+--- a/source/client/smbmount.c
++++ b/source/client/smbmount.c
+@@ -25,6 +25,11 @@
+
+ #include <mntent.h>
+ #include <asm/types.h>
++/* sorry, no real idea why this is needed on some toolchains :-(
++ I suspect some include breakage. Anyway, this avoids the build error */
++#if defined(_TIME_H) && !defined(_LINUX_TIME_H)
++#define _LINUX_TIME_H
++#endif
+ #include <linux/smb_fs.h>
+
+ extern BOOL in_client;
endif # ifeq ($(PLATFORM), nevis)
-$(D)/samba: $(D)/libiconv $(ARCHIVE)/samba-3.3.9.tar.gz | $(TARGETPREFIX)
- $(UNTAR)/samba-3.3.9.tar.gz
- cd $(BUILD_TMP)/samba-3.3.9 && \
+ifeq ($(PLATFORM), apollo)
+SMB_PREFIX=/usr
+endif
+ifeq ($(PLATFORM), kronos)
+SMB_PREFIX=/usr
+endif
+ifeq ($(PLATFORM), nevis)
+SMB_PREFIX=/var
+endif
+ifeq ($(PLATFORM), nevis)
+SAMBA_BUILDS = \
+ bin/smbd \
+ bin/nmbd
+SAMBA_OPT =
+else
+SAMBA_BUILDS = \
+ bin/smbd \
+ bin/nmbd
+SAMBA_OPT = \
+ bin/smbclient \
+ bin/smbmount \
+ bin/smbmnt \
+ bin/smbpasswd
+endif
+
+# // use SAMBA_EXTRA_DIR to build it not in TARGETPREFIX
+SAMBA_EXTRA_DIR=yes
+ifeq ($(SAMBA_EXTRA_DIR), yes)
+SAMBA_TARGET=$(BUILD_TMP)/build_samba
+else
+SAMBA_TARGET=$(TARGETPREFIX)
+endif
+$(D)/samba2: $(ARCHIVE)/samba-$(SAMBA2_VER).tar.gz | $(TARGETPREFIX)
+ rm -f $(SAMBA_TARGET)
+ mkdir -p $(SAMBA_TARGET)
+ $(UNTAR)/samba-$(SAMBA2_VER).tar.gz
+ set -e; cd $(BUILD_TMP)/samba-$(SAMBA2_VER); \
+ $(PATCH)/samba_2.2.12.diff; \
+ $(PATCH)/samba_2.2.12-noprint.diff; \
+ cd source; \
+ rm -f config.guess; \
+ rm -f config.sub; \
+ autoconf configure.in > configure; \
+ automake --add-missing || true; \
+ ./configure \
+ --build=$(BUILD) \
+ --prefix=$(SMB_PREFIX) \
+ samba_cv_struct_timespec=yes \
+ samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \
+ --with-configdir=$(SMB_PREFIX)/etc \
+ --with-privatedir=$(SMB_PREFIX)/etc/samba/private \
+ --with-lockdir=/tmp/lock \
+ --with-piddir=/tmp \
+ --with-logfilebase=/tmp \
+ --disable-cups \
+ ; \
+ $(MAKE) clean || true; \
+ $(MAKE) bin/make_smbcodepage bin/make_unicodemap CC=$(CC); \
+ install -d $(SAMBA_TARGET)$(SMB_PREFIX)/lib/codepages; \
+ ./bin/make_smbcodepage c 850 codepages/codepage_def.850 \
+ $(SAMBA_TARGET)$(SMB_PREFIX)/lib/codepages/codepage.850; \
+ ./bin/make_unicodemap 850 codepages/CP850.TXT \
+ $(SAMBA_TARGET)$(SMB_PREFIX)/lib/codepages/unicode_map.850; \
+ ./bin/make_unicodemap ISO8859-1 codepages/CPISO8859-1.TXT \
+ $(SAMBA_TARGET)$(SMB_PREFIX)/lib/codepages/unicode_map.ISO8859-1
+ $(MAKE) -C $(BUILD_TMP)/samba-$(SAMBA2_VER)/source distclean
+ set -e; cd $(BUILD_TMP)/samba-$(SAMBA2_VER)/source; \
+ ./configure \
+ --build=$(BUILD) \
+ --host=$(TARGET) \
+ --prefix=$(SMB_PREFIX) \
+ samba_cv_struct_timespec=yes \
+ samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \
+ samba_cv_HAVE_IFACE_IFCONF=yes \
+ samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes \
+ samba_cv_HAVE_OFF64_T=yes \
+ samba_cv_have_longlong=yes \
+ --with-configdir=$(SMB_PREFIX)/etc \
+ --with-privatedir=$(SMB_PREFIX)/etc/samba/private \
+ --with-lockdir=/tmp/lock \
+ --with-piddir=/tmp \
+ --with-logfilebase=/tmp \
+ --disable-cups \
+ ; \
+ $(MAKE) $(SAMBA_BUILDS) $(SAMBA_OPT)
+ install -d $(SAMBA_TARGET)$(SMB_PREFIX)/bin
+ for i in smbd nmbd; do \
+ install $(BUILD_TMP)/samba-$(SAMBA2_VER)/source/bin/$$i $(SAMBA_TARGET)$(SMB_PREFIX)/bin; \
+ done
+ install -d $(SAMBA_TARGET)$(SMB_PREFIX)/etc/samba/private
+ install -d $(SAMBA_TARGET)/etc/init.d
+ install $(SCRIPTS)/smb.conf $(SAMBA_TARGET)$(SMB_PREFIX)/etc
+ install -m 755 $(SCRIPTS)/samba $(SAMBA_TARGET)/etc/init.d/samba
+ ln -sf samba $(SAMBA_TARGET)/etc/init.d/S99samba
+ ln -sf samba $(SAMBA_TARGET)/etc/init.d/K01samba
+ cp -a $(SAMBA_TARGET)/* $(TARGETPREFIX)
+ $(TARGET)-strip $(SAMBA_TARGET)$(SMB_PREFIX)/bin/*
+ for i in $(SAMBA_OPT); do \
+ install $(BUILD_TMP)/samba-$(SAMBA2_VER)/source/$$i $(SAMBA_TARGET)$(SMB_PREFIX)/bin; \
+ done
+ $(REMOVE)/samba-$(SAMBA2_VER)
+ touch $@
+
+$(D)/samba3: $(D)/libiconv $(ARCHIVE)/samba-$(SAMBA3_VER).tar.gz | $(TARGETPREFIX)
+ rm -f $(SAMBA_TARGET)
+ mkdir -p $(SAMBA_TARGET)
+ $(UNTAR)/samba-$(SAMBA3_VER).tar.gz
+ cd $(BUILD_TMP)/samba-$(SAMBA3_VER) && \
$(PATCH)/samba-3.3.9.diff && \
cd source && \
export CONFIG_SITE=$(PATCHES)/samba-3.3.9-config.site && \
--without-krb5 --without-ldap --without-ads --disable-cups --disable-swat \
&& \
$(MAKE) && \
- $(MAKE) install DESTDIR=$(TARGETPREFIX)
- rm -f -r $(TARGETPREFIX)/.remove
- $(REMOVE)/samba-3.3.9
+ $(MAKE) install DESTDIR=$(SAMBA_TARGET)
+ rm -f -r $(SAMBA_TARGET)/.remove
+ $(REMOVE)/samba-$(SAMBA3_VER)
touch $@
$(D)/qtweb: $(ARCHIVE)/qt-everywhere-opensource-src-4.6.3.tar.gz | $(TARGETPREFIX)