diff --git a/config/CONFIG.Host.WIN32 b/config/CONFIG.Host.WIN32 index 54d2d1383..539e25337 100644 --- a/config/CONFIG.Host.WIN32 +++ b/config/CONFIG.Host.WIN32 @@ -24,6 +24,8 @@ RCCMD = rc -l 0x409 -fo $@ $< ARCMD = lib /nologo /verbose /out:$@ +BAFCMD = bscmake /nologo /o $@ + # # Configure OS vendor C compiler ACC = cl @@ -146,6 +148,8 @@ WIN32=1 EXE=.exe OBJ=.obj RES=.res +BAF=.bsc +BOF=.sbr # Problem: MS Visual C++ does not recognize *.cc as C++ source, # we have to compile xx.cc using the flag -Tp xx.cc, diff --git a/config/RULES.Host b/config/RULES.Host index 02a6ba8e0..7e661bef2 100644 --- a/config/RULES.Host +++ b/config/RULES.Host @@ -339,6 +339,13 @@ endif inc:: $(INSTALL_INC) $(INSTALL_OSINC) +# WIN95/NT source browser +#ifdef BAF +PROD_BAF = $(addsuffix $(BAF), $(basename $(PROD))) +LIB_BAF = $(addsuffix $(BAF), $(basename $(LIBRARY))) +browse: $(LIB_BAF) $(PROD_BAF) +#endif + rebuild:: clean install install:: inc buildInstall @@ -358,6 +365,9 @@ clean:: @echo "Cleaning" @$(RM) *.i *$(OBJ) *.a $(PROD) $(TESTPROD) $(LIBNAME) $(SHRLIBNAME) $(INC) \ *$(RES) $(TARGETS) $(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) +ifdef BAF + @$(RM) $(PROD_BAF) $(LIB_BAF) *$(BOF) +endif ifdef DBDEXPAND @$(RM) $(DBDNAME) endif @@ -403,12 +413,26 @@ endif PRODNAME_OBJS=$(addsuffix $(OBJ), $(basename $(PRODNAME_SRCS))) PRODNAME_RESS=$(addsuffix $(RES), $(basename $(PRODNAME_RCS))) +BROWSE_OBJECTS = $(addsuffix $(BOF), $(basename $(PRODNAME_SRCS))) + $(PRODNAME): $(PRODNAME_OBJS) $(PRODNAME_RESS) @$(RM) $@ $(PRODNAME_LINKER) $(PRODNAME_OBJS) $(PRODNAME_RESS) $(LDLIBS) +else # ifdef PRODNAME_SRCS + +BROWSE_OBJECTS = $(addsuffix $(BOF), $(basename $(PRODNAME))) + endif # ifdef PRODNAME_SRCS +# WIN95/NT source browser +ifdef BAF +$(addsuffix $(BAF), $(basename $(PRODNAME))): $(BROWSE_OBJECTS) + @echo "Building source browser archive $@" + @$(RM) $@ + $(BAFCMD) $^ +endif + else # PRODNAME not defined # We have to use the product's true dependancies and @@ -420,7 +444,7 @@ PROD_OBJS=$(addsuffix $(OBJ), $(basename $(SRCS) $(COND_PROD_SRCS))) PROD_RESS=$(addsuffix $(RES), $(basename $(RCS) $(COND_PROD_RCS))) PROD_MAKE_COMMAND=$(MAKE) $@\ - PRODNAME="$@"\ + PRODNAME=$(addsuffix $(EXE), $(basename $@)) \ PRODNAME_SRCS="$(SRCS) $($(basename $@)_SRCS)"\ PRODNAME_SRCS_DEFAULT="$($(basename $@)_SRCS_DEFAULT)"\ PRODNAME_SRCS_$(ARCH_CLASS)="$($(basename $@)_SRCS_$(ARCH_CLASS))"\ @@ -432,6 +456,8 @@ PROD_MAKE_COMMAND=$(MAKE) $@\ $(PROD): $(SRCS) $(COND_PROD_SRCS) $(PROD_RESS) $(PROD_DEPLIBS) $(COND_PROD_DEPLIBS) @$(PROD_MAKE_COMMAND) +$(PROD_BAF): $(PROD) + @$(PROD_MAKE_COMMAND) endif endif #ifdef PRODNAME @@ -642,6 +668,14 @@ $(DBDNAME): ../$(DBDEXPAND) $(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand$(EXE) $(USER_DBDFLAGS) $< > $@ endif +# WIN95/NT source browser +ifdef BAF +$(LIB_BAF): $(addsuffix $(BOF), $(basename $(LIBSRCS))) + @echo "Building source browser archive $@" + @$(RM) $@ + $(BAFCMD) $^ +endif + $(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS) $(LINK.shrlib) $(LIBOBJS) $(DLL_LDLIBS) diff --git a/config/RULES_ARCHS b/config/RULES_ARCHS index 87134d3b3..6f6f1ed09 100644 --- a/config/RULES_ARCHS +++ b/config/RULES_ARCHS @@ -13,6 +13,7 @@ ACTIONS += install ACTIONS += buildInstall ACTIONS += depends ACTIONS += rebuild +ACTIONS += browse actionPart = $(word 1, $(subst $(DIVIDER), ,$@)) archPart = $(word 2, $(subst $(DIVIDER), ,$@))