# # BEGIN COPYRIGHT BLOCK # Copyright 2001 Sun Microsystems, Inc. # Portions copyright 1999, 2001-2003 Netscape Communications Corporation. # All rights reserved. # END COPYRIGHT BLOCK # # # Makefile for libaccess.a # BUILD_ROOT=../.. MODULE=LibAccess include $(BUILD_ROOT)/nsdefs.mk OBJDEST=$(OBJDIR)/lib/libaccess UTESTDEST=$(OBJDIR)/lib/libaccess/utest LEX=flex include $(BUILD_ROOT)/nsconfig.mk MCC_INCLUDE += $(ADMINUTIL_INCLUDE) ifeq ($(ARCH), WINNT) LIBS=$(OBJDIR)/lib/libaccess.lib CC=cl -nologo -MT VALUES=$(OBJDEST)/values.h else VALUES= LIBS=$(OBJDIR)/lib/libaccess.a endif all: $(OBJDEST) $(LIBS) $(OBJDEST): mkdir -p $(OBJDEST) $(UTESTDEST): mkdir -p $(UTESTDEST) OSOBJS = OBJS=$(addprefix $(OBJDEST)/, usi.o \ attrec.o \ nseframe.o \ nsdb.o \ nsuser.o \ nsgroup.o \ nsautherr.o \ symbols.o \ acltools.o \ aclutil.o \ aclcache.o \ aclflush.o \ authdb.o \ method.o \ ldapacl.o \ register.o \ lasdns.o \ lasip.o \ lastod.o \ usrcache.o \ lasgroup.o \ lasuser.o \ aclspace.o \ acl.tab.o \ acl.yy.o \ acleval.o \ oneeval.o \ access_plhash.o \ aclparse.o \ aclbuild.o \ aclerror.o \ nsadb.o \ nscert.o \ nsamgmt.o \ nsgmgmt.o \ nsdbmgmt.o \ nsumgmt.o \ $(OSOBJS) \ ) # # AVA Mapping files. Currently not compiled in (FORTEZZA for reference only). # AVAMAPFILES = lex.yy.o y.tab.o avapfile.o avadb.o MODULE_CFLAGS=-I$(BUILD_ROOT)/include -DACL_LIB_INTERNAL $(TESTFLAGS) ifeq ($(LDAP_NO_LIBLCACHE),1) MODULE_CFLAGS+=-DNO_LIBLCACHE endif LOCAL_DEPS = $(LDAPSDK_DEP) $(LIBS): $(LOCAL_DEPS) $(OBJS) rm -f $@ $(AR) $(OBJS) $(RANLIB) $@ include $(INCLUDE_DEPENDS) # # acl.tab.c acl.tab.h and acl.yy.c should not be generated by the build, # they are checked in and should be pulled from the tree by # default. The following rules are provided in case the grammar or # lexer needs changes. # # # Right now it's best to run yacc on a Solaris machine because the # /usr/lib/yaccpar makes the NT compiler happier. It should work on # other UNIX systems -- but that's what is checked in and tested. # yacc: $(YACC) -d acltext.y sed -f yy-sed y.tab.h > acl.tab.h sed -f yy-sed y.tab.c > acl.tab.cpp rm y.tab.h y.tab.c # # Flex generates a case insenitive lexer. It also provides mechanisms # that allow NSPR to replace it's standard IO routines. The standard UNIX # lex wants to use some stupid library! One would think that lex could # generate all the code it needs just like FLEX. # flex: $(LEX) -i aclscan.l sed -f yy-sed lex.yy.c > acl.yy.cpp rm lex.yy.c # # more AVA mapping stuff, needs to be made to work with the other lexx/yacc # code added for 3.0 # #ifeq ($(ARCH), WINNT) #$(OBJDEST)/y.tab.o: $(OBJDEST)/y.tab.c $(VALUES) $(OBJDEST)/y.tab.h # $(CC) -c $(CFLAGS) $(MCC_INCLUDE) -I$(OBJDEST) -I. $< -Fo$*.o #else #$(OBJDEST)/y.tab.o: $(OBJDEST)/y.tab.c $(OBJDEST)/y.tab.h # $(CC) -c $(CFLAGS) $(MCC_INCLUDE) -I. -o $*.o $< #endif # #ifeq ($(ARCH), WINNT) #$(OBJDEST)/y.tab.h: wintab.h # cp wintab.h $(OBJDEST)/y.tab.h # #$(OBJDEST)/y.tab.c: winnt.y # cp winnt.y $(OBJDEST)/y.tab.c # #$(OBJDEST)/values.h: winnt.v # cp winnt.v $(OBJDEST)/values.h #else #$(OBJDEST)/y.tab.h $(OBJDEST)/y.tab.c: avaparse.y # yacc -d avaparse.y # mv y.tab.h $(OBJDEST)/ # mv y.tab.c $(OBJDEST)/ #endif # #$(OBJDEST)/lex.yy.o: $(OBJDEST)/lex.yy.c $(OBJDEST)/y.tab.h #ifeq ($(ARCH), WINNT) # $(CC) -c $(CFLAGS) $(MCC_INCLUDE) -I$(OBJDEST) -I. $< -Fo$*.o #else # $(CC) -c $(CFLAGS) $(MCC_INCLUDE) -I. -o $*.o $< #endif # #ifeq ($(ARCH), WINNT) #$(OBJDEST)/lex.yy.c: winnt.l # cp winnt.l $(OBJDEST)/lex.yy.c #else #$(OBJDEST)/lex.yy.c: avascan.l # lex avascan.l # mv lex.yy.c $(OBJDEST)/ #endif