# $Id: GeneralMacros,v 1.22 2001/03/12 10:08:36 hristov Exp $
 
########################## General Macros #####################################

$(SLIBRARY):
		@echo "Generating $@"
		@echo SLIBRARY=$(SLIBRARY)
		@echo MADX_ROOT=$(MADX_ROOT)
		
		@[ -d $(dir $@) ] || mkdir -p $(dir $@)
		@rm -f $@
                ifeq ($(PLATFORM),aix)
		   @cd tgt_linux ;\
		   $(SHLD) -o $@ $(LIBS) -p 0 $(patsubst tgt_linux/%,%,$(filter-out dirs,$^))
                else
		   @cd tgt_linux ;\
		   $(SHLD) $(SOFLAGS) $(LDFLAGS) $(patsubst tgt_linux/%,%,$(filter-out dirs,$^)) $(SHLIB) -o $@
                endif
		@chmod 555 $@


$(ALIBRARY):	
		@echo "Generating $@"
		@[ -d $(dir $@) ] || mkdir -p $(dir $@)
		@rm -f $@
		@ar rv $@ $^
 
$(PROGRAM):	
		@echo "Generating $@"
		@[ -d $(dir $@) ] || mkdir $(dir $@)
		@rm -f $@
ifeq ($(CXXVERBOSE),)
		@$(LD) $(LDFLAGS) $^ $(LIBS) -o $@
else
		$(LD) $(LDFLAGS) $^ $(LIBS) -o $@
endif
 
headers:	$(patsubst %,$(MADX_ROOT)/include/%,$(HEADERS))

$(DICT):
		@echo "Generating $@"
ifeq ($(CXXVERBOSE),)
		@rootcint -f $@ -c $(filter -I%,$(CXXFLAGS)) $^
else
		rootcint -f $@ -c $(filter -I%,$(CXXFLAGS)) $^
endif
 
depend:
		-@$(MAKEDEPEND) -ftgt_linux/Make-depend -ptgt_linux/ -- $(CXXFLAGS) $(DEPINC) -- $^ 2>/dev/null

tgt_linux/Make-depend:
		@[ -d $(dir $@) ] || mkdir $(dir $@)
		@cp $(MADX_ROOT)/conf/Makedepend $@

macroclean:
		@rm -f $(TOCLEAN) *~ \#*


### Target check creates violation reports (.viol), which depend on
### stripped files (.ii), which in turn depend on preprocessed
### files (.i). Dependences are in GeneralDef.

check:		$(CHECKS)

PREPROC       = $(patsubst %.viol,%.i,$(CHECKS))

REVENGS       = $(patsubst %.viol,%.ii,$(CHECKS))

.SECONDARY: $(REVENGS) $(PREPROC)

reveng:		check/classDiagram.dot

check/classDiagram.dot:	$(PREPROC)
	@$(REV_ENG) $^
	@-mv classDiagram.dot $@

revdisp:	reveng
	@$(IRST_INSTALLDIR)/scripts/revEngInterface.sh check/classDiagram.dot
