Home | History | Annotate | Line # | Download | only in kadm5
NTMakefile revision 1.1.1.1.6.1
      1 ########################################################################
      2 #
      3 # Copyright (c) 2009, Secure Endpoints Inc.
      4 # All rights reserved.
      5 # 
      6 # Redistribution and use in source and binary forms, with or without
      7 # modification, are permitted provided that the following conditions
      8 # are met:
      9 # 
     10 # - Redistributions of source code must retain the above copyright
     11 #   notice, this list of conditions and the following disclaimer.
     12 # 
     13 # - Redistributions in binary form must reproduce the above copyright
     14 #   notice, this list of conditions and the following disclaimer in
     15 #   the documentation and/or other materials provided with the
     16 #   distribution.
     17 # 
     18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     21 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     22 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     23 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     24 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     25 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     26 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     27 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     28 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29 # POSSIBILITY OF SUCH DAMAGE.
     30 # 
     31 
     32 RELDIR=lib\kadm5 
     33 
     34 !include ../../windows/NTMakefile.w32 
     35 
     36 dist_libkadm5clnt_la_SOURCES =	\
     37 	ad.c			\
     38 	chpass_c.c		\
     39 	client_glue.c		\
     40 	common_glue.c		\
     41 	create_c.c		\
     42 	delete_c.c		\
     43 	destroy_c.c		\
     44 	flush_c.c		\
     45 	free.c			\
     46 	get_c.c			\
     47 	get_princs_c.c		\
     48 	init_c.c		\
     49 	kadm5_locl.h		\
     50 	marshall.c		\
     51 	modify_c.c		\
     52 	private.h		\
     53 	privs_c.c		\
     54 	randkey_c.c		\
     55 	rename_c.c		\
     56 	send_recv.c		\
     57 	kadm5-pwcheck.h		\
     58 	admin.h
     59 
     60 dist_libkadm5srv_la_SOURCES =	\
     61 	acl.c			\
     62 	admin.h			\
     63 	bump_pw_expire.c	\
     64 	chpass_s.c		\
     65 	common_glue.c		\
     66 	context_s.c		\
     67 	create_s.c		\
     68 	delete_s.c		\
     69 	destroy_s.c		\
     70 	ent_setup.c		\
     71 	error.c			\
     72 	flush_s.c		\
     73 	free.c			\
     74 	get_princs_s.c		\
     75 	get_s.c			\
     76 	init_s.c		\
     77 	kadm5_locl.h		\
     78 	keys.c			\
     79 	log.c			\
     80 	marshall.c		\
     81 	modify_s.c		\
     82 	password_quality.c	\
     83 	private.h		\
     84 	privs_s.c		\
     85 	randkey_s.c		\
     86 	rename_s.c		\
     87 	server_glue.c		\
     88 	set_keys.c		\
     89 	setkey3_s.c		\
     90 	set_modifier.c		\
     91 	kadm5-pwcheck.h		\
     92 	admin.h
     93 
     94 LIBKADM5CLNT_OBJS=		    \
     95 	$(OBJ)\ad.obj		    \
     96 	$(OBJ)\chpass_c.obj	    \
     97 	$(OBJ)\client_glue.obj	    \
     98 	$(OBJ)\common_glue.obj	    \
     99 	$(OBJ)\create_c.obj	    \
    100 	$(OBJ)\delete_c.obj	    \
    101 	$(OBJ)\destroy_c.obj	    \
    102 	$(OBJ)\flush_c.obj	    \
    103 	$(OBJ)\free.obj		    \
    104 	$(OBJ)\get_c.obj	    \
    105 	$(OBJ)\get_princs_c.obj	    \
    106 	$(OBJ)\init_c.obj	    \
    107 	$(OBJ)\marshall.obj	    \
    108 	$(OBJ)\modify_c.obj	    \
    109 	$(OBJ)\privs_c.obj	    \
    110 	$(OBJ)\randkey_c.obj	    \
    111 	$(OBJ)\rename_c.obj	    \
    112 	$(OBJ)\send_recv.obj	    \
    113 	$(OBJ)\kadm5_err.obj
    114 
    115 LIBKADM5SRV_OBJS=		    \
    116 	$(OBJ)\acl.obj		    \
    117 	$(OBJ)\bump_pw_expire.obj   \
    118 	$(OBJ)\chpass_s.obj	    \
    119 	$(OBJ)\common_glue.obj	    \
    120 	$(OBJ)\context_s.obj	    \
    121 	$(OBJ)\create_s.obj	    \
    122 	$(OBJ)\delete_s.obj	    \
    123 	$(OBJ)\destroy_s.obj	    \
    124 	$(OBJ)\ent_setup.obj	    \
    125 	$(OBJ)\error.obj	    \
    126 	$(OBJ)\flush_s.obj	    \
    127 	$(OBJ)\free.obj		    \
    128 	$(OBJ)\get_princs_s.obj	    \
    129 	$(OBJ)\get_s.obj	    \
    130 	$(OBJ)\init_s.obj	    \
    131 	$(OBJ)\keys.obj		    \
    132 	$(OBJ)\log.obj		    \
    133 	$(OBJ)\marshall.obj	    \
    134 	$(OBJ)\modify_s.obj	    \
    135 	$(OBJ)\password_quality.obj \
    136 	$(OBJ)\privs_s.obj	    \
    137 	$(OBJ)\randkey_s.obj	    \
    138 	$(OBJ)\rename_s.obj	    \
    139 	$(OBJ)\server_glue.obj	    \
    140 	$(OBJ)\set_keys.obj	    \
    141 	$(OBJ)\setkey3_s.obj	    \
    142 	$(OBJ)\set_modifier.obj	    \
    143 	$(OBJ)\kadm5_err.obj
    144 
    145 
    146 proto_opts = -q -R "^(_|kadm5_c_|kadm5_s_|kadm5_log)" -P remove
    147 
    148 $(OBJ)\kadm5-protos.h: $(dist_libkadm5srv_la_SOURCES) $(dist_libkadm5clnt_la_SOURCES)
    149 	$(PERL) ..\..\cf\make-proto.pl $(proto_opts) \
    150 		-o $@ \
    151 		$(dist_libkadm5srv_la_SOURCES) \
    152 		$(dist_libkadm5clnt_la_SOURCES) \
    153 	|| $(RM) $@
    154 
    155 $(OBJ)\kadm5-private.h: $(dist_libkadm5srv_la_SOURCES) $(dist_libkadm5clnt_la_SOURCES)
    156 	$(PERL) ..\..\cf\make-proto.pl $(proto_opts) \
    157 		-p $@ \
    158 		$(dist_libkadm5srv_la_SOURCES) \
    159 		$(dist_libkadm5clnt_la_SOURCES) \
    160 	|| $(RM) $@
    161 
    162 $(OBJ)\iprop-commands.c $(OBJ)\iprop-commands.h: iprop-commands.in
    163 	cd $(OBJ)
    164 	$(CP) $(SRCDIR)\iprop-commands.in $(OBJ)
    165 	$(BINDIR)\slc.exe iprop-commands.in
    166 	cd $(SRCDIR)
    167 
    168 $(OBJ)\kadm5_err.h $(OBJ)kadm5_err.c: kadm5_err.et
    169 	cd $(OBJ)
    170 	$(BINDIR)\compile_et.exe $(SRCDIR)\kadm5_err.et
    171 	cd $(SRCDIR)
    172 
    173 $(KADM5INCDIR)\kadm5_err.h: $(OBJ)\kadm5_err.h
    174 
    175 KADM5INCDIR=$(INCDIR)\kadm5
    176 
    177 INCFILES=\
    178 	$(KADM5INCDIR)\kadm5_err.h	\
    179 	$(KADM5INCDIR)\admin.h	\
    180 	$(KADM5INCDIR)\private.h	\
    181 	$(KADM5INCDIR)\kadm5-protos.h	\
    182 	$(KADM5INCDIR)\kadm5-private.h	\
    183 	$(OBJ)\iprop-commands.h
    184 
    185 SBINPROGRAMS=$(SBINDIR)\iprop-log.exe
    186 
    187 LIBEXECPROGRAMS=$(LIBEXECDIR)\ipropd-master.exe $(LIBEXECDIR)\ipropd-slave.exe
    188 
    189 EXELIBDEPS= \
    190 	$(LIBKADM5SRV) \
    191 	$(LIBROKEN) \
    192 	$(LIBHEIMDAL) \
    193 	$(LIBHDB) \
    194 	$(LIBSQLITE) \
    195 	$(LIBSL) \
    196 	$(LIBCOMERR) \
    197 	$(LIBVERS)
    198 
    199 $(SBINDIR)\iprop-log.exe: $(OBJ)\iprop-log.obj $(OBJ)\iprop-commands.obj $(EXELIBDEPS) \
    200 		$(OBJ)\iprop-log-version.res
    201 	$(EXECONLINK)
    202 	$(EXEPREP)
    203 
    204 $(LIBEXECDIR)\ipropd-master.exe: $(OBJ)\ipropd_master.obj $(OBJ)\ipropd_common.obj \
    205 		$(EXELIBDEPS) $(OBJ)\ipropd-master-version.res
    206 	$(EXECONLINK)
    207 	$(EXEPREP)
    208 
    209 $(LIBEXECDIR)\ipropd-slave.exe: $(OBJ)\ipropd_slave.obj $(OBJ)\ipropd_common.obj \
    210 		$(EXELIBDEPS) $(OBJ)\ipropd-slave-version.res
    211 	$(EXECONLINK)
    212 	$(EXEPREP)
    213 
    214 $(LIBKADM5CLNT): $(LIBKADM5CLNT_OBJS)
    215 	$(LIBCON)
    216 
    217 LIBKADM5SRVRES=$(OBJ)\libkadm5srv-version.res
    218 
    219 $(LIBKADM5SRV): $(BINDIR)\libkadm5srv.dll
    220 
    221 $(BINDIR)\libkadm5srv.dll: $(LIBKADM5SRV_OBJS) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHDB) $(LIBCOMERR) $(LIBSQLITE) $(LIBKADM5SRVRES) $(LIBHEIMBASE)
    222 	$(DLLGUILINK) -implib:$(LIBKADM5SRV) -def:libkadm5srv-exports.def
    223 	$(DLLPREP_NODIST)
    224 
    225 all:: $(INCFILES) $(LIBKADM5SRV) $(LIBKADM5CLNT)
    226 
    227 all-tools:: $(SBINPROGRAMS) $(LIBEXECPROGRAMS)
    228 
    229 clean::
    230 	-$(RM) $(INCFILES)
    231 	-$(RM) $(LIBKADM5CLNT)
    232 	-$(RM) $(LIBKADM5SRV)
    233 	-$(RM) $(BINDIR)\libkadm5srv.*
    234 	-$(RM) $(SBINPROGRAMS:.exe=.*)
    235 	-$(RM) $(LIBEXECPROGRAMS:.exe=.*)
    236 
    237 test:: test-binaries test-run
    238 
    239 test-binaries:	\
    240 	$(OBJ)\default_keys.exe	\
    241 	$(OBJ)\test_pw_quality.exe \
    242 	$(OBJ)\sample_passwd_check.dll
    243 
    244 $(OBJ)\default_keys.exe: $(OBJ)\default_keys.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHDB)
    245 	$(EXECONLINK)
    246 	$(EXEPREP_NODIST)
    247 
    248 $(OBJ)\test_pw_quality.exe: $(OBJ)\test_pw_quality.obj	\
    249 	$(LIBROKEN) $(LIBKADM5SRV) $(LIBVERS) $(LIBHEIMDAL)
    250 	$(EXECONLINK)
    251 	$(EXEPREP_NODIST)
    252 
    253 $(OBJ)\sample_passwd_check.dll: $(OBJ)\sample_passwd_check.obj $(LIBHEIMDAL)
    254 	$(DLLGUILINK) /DEF:<<
    255 EXPORTS
    256 	version DATA
    257 	check_length
    258 <<
    259 	$(DLLPREP_NODIST)
    260 
    261 test-run:
    262 	cd $(OBJ)
    263 	-default_keys.exe
    264 	-test_pw_quality.exe
    265 	cd $(SRCDIR)
    266 
    267 {$(OBJ)}.h{$(KADM5INCDIR)}.h:
    268 	$(CP) $< $@
    269 
    270 {}.h{$(KADM5INCDIR)}.h:
    271 	$(CP) $< $@
    272 
    273 {}.c{$(OBJ)}.obj::
    274 	$(C2OBJ_P) -I$(OBJ) -I$(KADM5INCDIR)
    275 
    276 test-exports:
    277 	$(PERL) ..\..\cf\w32-check-exported-symbols.pl --vs version-script.map --def libkadm5srv-exports.def
    278 
    279 test:: test-exports
    280