1 ###########################################################################
2 # Makefile.in for Samba - rewritten for autoconf support
3 # Copyright Andrew Tridgell 1992-1998
4 ###########################################################################
7 exec_prefix=@
exec_prefix@
9 INSTALL_BIN
=$(exec_prefix)/bin
10 INSTALL_MAN
=$(prefix)/man
26 BASEDIR
=$(prefix)/samba
27 BINDIR
= $(BASEDIR
)/bin
28 SBINDIR
= $(BASEDIR
)/bin
29 LIBDIR
= $(BASEDIR
)/lib
30 VARDIR
= $(BASEDIR
)/var
31 MANDIR
= $(BASEDIR
)/man
33 # The permissions to give the executables
36 # set these to where to find various files
37 # These can be overridden by command line switches (see smbd(8))
38 # or in smb.conf (see smb.conf(5))
39 SMBLOGFILE
= $(VARDIR
)/log.smb
40 NMBLOGFILE
= $(VARDIR
)/log.nmb
41 CONFIGFILE
= $(LIBDIR
)/smb.conf
42 LMHOSTSFILE
= $(LIBDIR
)/lmhosts
43 DRIVERFILE
= $(LIBDIR
)/printers.def
44 SMB_PASSWD
= $(BINDIR
)/smbpasswd
45 SMB_PASSWD_FILE
= $(BASEDIR
)/private
/smbpasswd
47 # This is where SWAT images and help files go
48 SWATDIR
= $(BASEDIR
)/swat
50 # the directory where lock files go
51 LOCKDIR
= $(VARDIR
)/locks
53 # The directory where code page definition files go
54 CODEPAGEDIR
= $(LIBDIR
)/codepages
56 # The current codepage definition list.
57 CODEPAGELIST
= 437 737 850 852 861 932 866 949 950 936
59 # where you are going to have the smbrun binary. This defaults to the
60 # install directory. This binary is needed for correct printing
61 # and magic script execution. This should be an absolute path!
62 # Also not that this should include the name "smbrun" on the end (the
63 # name of the executable)
64 SMBRUN
= $(BINDIR
)/smbrun
67 PASSWD_FLAGS
= -DSMB_PASSWD
=\"$(SMB_PASSWD
)\" -DSMB_PASSWD_FILE
=\"$(SMB_PASSWD_FILE
)\"
68 FLAGS1
= $(CFLAGS
) -I
$(srcdir)/include -I
$(srcdir)/ubiqx
-DSMBLOGFILE
=\"$(SMBLOGFILE
)\" -DNMBLOGFILE
=\"$(NMBLOGFILE
)\"
69 FLAGS2
= -DCONFIGFILE
=\"$(CONFIGFILE
)\" -DLMHOSTSFILE
=\"$(LMHOSTSFILE
)\"
70 FLAGS3
= -DSWATDIR
=\"$(SWATDIR
)\" -DSBINDIR
=\"$(SBINDIR
)\" -DLOCKDIR
=\"$(LOCKDIR
)\" -DSMBRUN
=\"$(SMBRUN
)\" -DCODEPAGEDIR
=\"$(CODEPAGEDIR
)\"
71 FLAGS4
= -DDRIVERFILE
=\"$(DRIVERFILE
)\"
72 FLAGS5
= $(FLAGS1
) $(FLAGS2
) $(FLAGS3
) $(FLAGS4
) -DHAVE_INCLUDES_H
73 FLAGS
= $(FLAGS5
) $(PASSWD_FLAGS
)
75 SPROGS
= bin
/smbd bin
/nmbd bin
/swat
76 PROGS1
= bin
/smbclient bin
/testparm bin
/testprns bin
/smbrun bin
/smbstatus
77 PROGS2
= bin
/smbpasswd bin
/make_smbcodepage
78 PROGS
= $(PROGS1
) $(PROGS2
) bin
/nmblookup bin
/make_printerdef
80 SCRIPTS
= script
/smbtar script
/addtosmbpass
83 ######################################################################
85 ######################################################################
87 LIB_OBJ
= lib
/charcnv.o lib
/charset.o lib
/debug.o lib
/fault.o \
88 lib
/getsmbpass.o lib
/interface.o lib
/kanji.o lib
/md4.o \
89 lib
/membuffer.o lib
/netmask.o lib
/pidfile.o lib
/replace.o \
90 lib
/signal.o lib
/slprintf.o lib
/system.o lib
/time.o lib
/ufc.o \
91 lib
/util.o lib
/genrand.o lib
/username.o lib
/access.o lib
/smbrun.o \
94 UBIQX_OBJ
= ubiqx
/ubi_BinTree.o ubiqx
/ubi_Cache.o ubiqx
/ubi_SplayTree.o \
95 ubiqx
/ubi_dLinkList.o ubiqx
/ubi_sLinkList.o
97 PARAM_OBJ
= param
/loadparm.o param
/params.o
99 LIBSMB_OBJ
= libsmb
/clientgen.o libsmb
/namequery.o libsmb
/nmblib.o \
100 libsmb
/nterr.o libsmb
/smbdes.o libsmb
/smbencrypt.o \
101 libsmb
/smberr.o libsmb
/credentials.o
103 RPC_SERVER_OBJ
= rpc_server
/srv_ldap_helpers.o rpc_server
/srv_lsa.o \
104 rpc_server
/srv_lsa_hnd.o rpc_server
/srv_netlog.o \
105 rpc_server
/srv_pipe_hnd.o rpc_server
/srv_reg.o \
106 rpc_server
/srv_samr.o rpc_server
/srv_srvsvc.o \
107 rpc_server
/srv_util.o rpc_server
/srv_wkssvc.o
109 RPC_PARSE_OBJ
= rpc_parse
/parse_lsa.o rpc_parse
/parse_misc.o \
110 rpc_parse
/parse_net.o rpc_parse
/parse_prs.o \
111 rpc_parse
/parse_reg.o rpc_parse
/parse_rpc.o \
112 rpc_parse
/parse_samr.o rpc_parse
/parse_srv.o \
113 rpc_parse
/parse_wks.o
115 RPC_CLIENT_OBJ
= rpc_client
/cli_login.o rpc_client
/cli_netlogon.o \
116 rpc_client
/cli_pipe.o
118 LOCKING_OBJ
= locking
/locking.o locking
/locking_shm.o locking
/locking_slow.o \
119 locking
/shmem.o locking
/shmem_sysv.o
121 PASSDB_OBJ
= passdb
/passdb.o passdb
/smbpassfile.o passdb
/smbpass.o \
122 passdb
/pass_check.o passdb
/ldap.o passdb
/nispass.o
124 SMBD_OBJ1
= smbd
/server.o smbd
/files.o smbd
/chgpasswd.o smbd
/connection.o \
125 smbd
/dfree.o smbd
/dir.o smbd
/password.o smbd
/conn.o smbd
/fileio.o \
126 smbd
/groupname.o smbd
/ipc.o smbd
/mangle.o smbd
/negprot.o \
127 smbd
/message.o smbd
/nttrans.o smbd
/pipes.o smbd
/predict.o \
128 smbd
/quotas.o smbd
/reply.o smbd
/ssl.o smbd
/trans2.o smbd
/uid.o \
129 smbd
/dosmode.o smbd
/filename.o smbd
/open.o smbd
/close.o smbd
/blocking.o \
130 smbd
/process.o smbd
/oplock.o smbd
/service.o smbd
/error.o
132 PRINTING_OBJ
= printing
/pcap.o printing
/print_svid.o printing
/printing.o
134 SMBD_OBJ
= $(SMBD_OBJ1
) $(PARAM_OBJ
) $(LIBSMB_OBJ
) $(UBIQX_OBJ
) \
135 $(RPC_SERVER_OBJ
) $(RPC_CLIENT_OBJ
) $(RPC_PARSE_OBJ
) \
136 $(LOCKING_OBJ
) $(PASSDB_OBJ
) $(PRINTING_OBJ
) $(LIB_OBJ
)
139 NMBD_OBJ1
= nmbd
/asyncdns.o nmbd
/nmbd.o nmbd
/nmbd_become_dmb.o \
140 nmbd
/nmbd_become_lmb.o nmbd
/nmbd_browserdb.o \
141 nmbd
/nmbd_browsesync.o nmbd
/nmbd_elections.o \
142 nmbd
/nmbd_incomingdgrams.o nmbd
/nmbd_incomingrequests.o \
143 nmbd
/nmbd_lmhosts.o nmbd
/nmbd_logonnames.o nmbd
/nmbd_mynames.o \
144 nmbd
/nmbd_namelistdb.o nmbd
/nmbd_namequery.o \
145 nmbd
/nmbd_nameregister.o nmbd
/nmbd_namerelease.o \
146 nmbd
/nmbd_nodestatus.o nmbd
/nmbd_packets.o \
147 nmbd
/nmbd_processlogon.o nmbd
/nmbd_responserecordsdb.o \
148 nmbd
/nmbd_sendannounce.o nmbd
/nmbd_serverlistdb.o \
149 nmbd
/nmbd_subnetdb.o nmbd
/nmbd_winsproxy.o nmbd
/nmbd_winsserver.o \
150 nmbd
/nmbd_workgroupdb.o nmbd
/nmbd_synclists.o
152 NMBD_OBJ
= $(NMBD_OBJ1
) $(PARAM_OBJ
) $(LIBSMB_OBJ
) $(UBIQX_OBJ
) \
153 $(PASSDB_OBJ
) $(LIB_OBJ
)
155 SWAT_OBJ
= web
/cgi.o web
/diagnose.o web
/startstop.o web
/statuspage.o \
156 web
/swat.o
$(LIBSMB_OBJ
) $(LOCKING_OBJ
) \
157 $(PARAM_OBJ
) $(PASSDB_OBJ
) $(RPC_CLIENT_OBJ
) $(RPC_PARSE_OBJ
) \
158 $(UBIQX_OBJ
) $(LIB_OBJ
)
160 SMBRUN_OBJ
= utils
/smbrun.o
162 MAKE_SMBCODEPAGE_OBJ
= utils
/make_smbcodepage.o
$(PARAM_OBJ
) \
163 $(UBIQX_OBJ
) $(LIB_OBJ
)
165 MAKE_PRINTERDEF_OBJ
= utils
/make_printerdef.o
$(PARAM_OBJ
) \
166 $(UBIQX_OBJ
) $(LIB_OBJ
)
168 STATUS_OBJ
= utils
/status.o
$(LOCKING_OBJ
) $(PARAM_OBJ
) \
169 $(UBIQX_OBJ
) $(LIB_OBJ
)
171 TESTPARM_OBJ
= utils
/testparm.o \
172 $(PARAM_OBJ
) $(UBIQX_OBJ
) $(LIB_OBJ
)
174 TESTPRNS_OBJ
= utils
/testprns.o
$(PARAM_OBJ
) $(PRINTING_OBJ
) $(UBIQX_OBJ
) \
177 SMBPASSWD_OBJ
= utils
/smbpasswd.o
$(PARAM_OBJ
) $(LIBSMB_OBJ
) $(PASSDB_OBJ
) \
178 $(UBIQX_OBJ
) $(RPC_CLIENT_OBJ
) $(RPC_PARSE_OBJ
) $(LIB_OBJ
)
180 CLIENT_OBJ
= client
/client.o client
/clientutil.o client
/clitar.o \
181 $(PARAM_OBJ
) $(LIBSMB_OBJ
) $(UBIQX_OBJ
) $(LIB_OBJ
)
183 NMBLOOKUP_OBJ
= utils
/nmblookup.o
$(PARAM_OBJ
) $(UBIQX_OBJ
) \
184 $(LIBSMB_OBJ
) $(LIB_OBJ
)
186 SMBTORTURE_OBJ
= utils
/torture.o
$(LIBSMB_OBJ
) $(PARAM_OBJ
) \
187 $(UBIQX_OBJ
) $(LIB_OBJ
)
189 PROTO_OBJ
= $(SMBD_OBJ
) $(NMBD_OBJ
) $(SWAT_OBJ
) $(CLIENT_OBJ
)
191 ######################################################################
193 ######################################################################
195 all : CHECK
$(SPROGS
) $(PROGS
)
201 @echo
"Using FLAGS = $(FLAGS)"
202 @echo
"Using LIBS = $(LIBS)"
206 @
$(CC
) -I.
-I
$(srcdir) $(FLAGS
) -c
$< -o
$@
208 bin
/smbd
: $(SMBD_OBJ
)
210 @
$(CC
) $(FLAGS
) -o
$@
$(SMBD_OBJ
) $(LIBS
)
212 bin
/nmbd
: $(NMBD_OBJ
)
214 @
$(CC
) $(FLAGS
) -o
$@
$(NMBD_OBJ
) $(LIBS
)
216 bin
/swat
: $(SWAT_OBJ
)
218 @
$(CC
) $(FLAGS
) -o
$@
$(SWAT_OBJ
) $(LIBS
)
220 bin
/smbrun
: $(SMBRUN_OBJ
)
222 @
$(CC
) $(FLAGS
) -o
$@
$(SMBRUN_OBJ
) $(LIBS
)
224 bin
/smbclient
: $(CLIENT_OBJ
)
226 @
$(CC
) $(FLAGS
) -o
$@
$(CLIENT_OBJ
) $(LIBS
)
228 bin
/testparm
: $(TESTPARM_OBJ
)
230 @
$(CC
) $(FLAGS
) -o
$@
$(TESTPARM_OBJ
) $(LIBS
)
232 bin
/testprns
: $(TESTPRNS_OBJ
)
234 @
$(CC
) $(FLAGS
) -o
$@
$(TESTPRNS_OBJ
) $(LIBS
)
236 bin
/smbstatus
: $(STATUS_OBJ
)
238 @
$(CC
) $(FLAGS
) -o
$@
$(STATUS_OBJ
) $(LIBS
)
240 bin
/smbpasswd
: $(SMBPASSWD_OBJ
)
242 @
$(CC
) $(FLAGS
) -o
$@
$(SMBPASSWD_OBJ
) $(LIBS
)
244 bin
/make_smbcodepage
: $(MAKE_SMBCODEPAGE_OBJ
)
246 @
$(CC
) $(FLAGS
) -o
$@
$(MAKE_SMBCODEPAGE_OBJ
) $(LIBS
)
248 bin
/nmblookup
: $(NMBLOOKUP_OBJ
)
250 @
$(CC
) $(FLAGS
) -o
$@
$(NMBLOOKUP_OBJ
) $(LIBS
)
252 bin
/make_printerdef
: $(MAKE_PRINTERDEF_OBJ
)
254 @
$(CC
) $(FLAGS
) -o
$@
$(MAKE_PRINTERDEF_OBJ
) $(LIBS
)
256 bin
/smbtorture
: $(SMBTORTURE_OBJ
)
258 @
$(CC
) $(FLAGS
) -o
$@
$(SMBTORTURE_OBJ
) $(LIBS
)
261 install: installbin installman installscripts installcp installswat
264 @
$(SHELL
) $(srcdir)/script
/installbin.sh
$(INSTALLPERMS
) $(BASEDIR
) $(SBINDIR
) $(LIBDIR
) $(VARDIR
) $(SPROGS
)
265 @
$(SHELL
) $(srcdir)/script
/installbin.sh
$(INSTALLPERMS
) $(BASEDIR
) $(BINDIR
) $(LIBDIR
) $(VARDIR
) $(PROGS
)
268 @
$(SHELL
) $(srcdir)/script
/installscripts.sh
$(INSTALLPERMS
) $(BINDIR
) $(SCRIPTS
)
271 @
$(SHELL
) $(srcdir)/script
/installcp.sh
$(LIBDIR
) $(CODEPAGEDIR
) $(BINDIR
) $(CODEPAGELIST
)
274 @
$(SHELL
) $(srcdir)/script
/installswat.sh
$(SWATDIR
) $(srcdir)
276 # revert to the previously installed version
278 @
$(SHELL
) $(srcdir)/script
/revert.sh
$(SBINDIR
) $(SPROGS
)
279 @
$(SHELL
) $(srcdir)/script
/revert.sh
$(BINDIR
) $(PROGS
) $(SCRIPTS
)
282 @
$(SHELL
) $(srcdir)/script
/installman.sh
$(MANDIR
) $(srcdir)
284 uninstall: uninstallman uninstallbin uninstallscripts uninstallcp
287 @
$(SHELL
) $(srcdir)/script
/uninstallman.sh
$(MANDIR
) $(srcdir)
290 @
$(SHELL
) $(srcdir)/script
/uninstallbin.sh
$(INSTALLPERMS
) $(BASEDIR
) $(SBINDIR
) $(LIBDIR
) $(VARDIR
) $(SPROGS
)
291 @
$(SHELL
) $(srcdir)/script
/uninstallbin.sh
$(INSTALLPERMS
) $(BASEDIR
) $(BINDIR
) $(LIBDIR
) $(VARDIR
) $(PROGS
)
294 @
$(SHELL
) $(srcdir)/script
/uninstallscripts.sh
$(INSTALLPERMS
) $(BINDIR
) $(SCRIPTS
)
297 @
$(SHELL
) $(srcdir)/script
/uninstallcp.sh
$(CODEPAGEDIR
) $(CODEPAGELIST
)
300 rm -f core
*/*.o
*/*~
*~ config.cache
$(PROGS
) $(SPROGS
)
303 @echo rebuilding
include/proto.h
304 @
$(AWK
) -f script
/mkproto.awk
`echo $(PROTO_OBJ) | tr ' ' '\n' | sed -e 's/\.o/\.c/g' | sort -u | grep -v "ubiqx/"` > include/proto.h
307 etags
`find . -name "*.[ch]"`
310 ctags
`find . -name "*.[ch]"`