1.4 System Building




1.4.0.0 System building problems  




1.4.0.0 System building problems (cont.)  




1.4.0.0 System building problems (cont.)  




1.4.0.0 System representation  




1.4.0.0 System building with make  




1.4.0.0 Sample component dependencies  




1.4.0.0 Sample Makefile  


include ../config.mk.$(OSTYPE)
#
#  What is the name of the program you want to create?
                                                                          
                                                                          
#
TARGET=$(ALIB)
#
#  List the object code files to be produced by compilation.
#
OBJS=algae.o algaeapp.o animatpn.o animatw.o \
     astream.o compound.o defaults.o fontsel.o \
     nodes.o stdiopn.o stdiow.o timer.o \
     tracepn.o tracew.o visible.o
#
#  The following is "boilerplate" to set up the standard compilation
#  commands:
#
.SUFFIXES:
.SUFFIXES: .d .o .h .c .cc .C .cpp




RECORDDEP=-MD
.c.o: ; $(CC) $(CFLAGS) $(RECORDDEP) -c $*.c
.cc.o: ; $(CPP) $(CPPFLAGS) $(RECORDDEP) -c $*.cc
.C.o: ; $(CPP) $(CPPFLAGS) $(RECORDDEP) -c $*.C
.cpp.o: ; $(CPP) $(CPPFLAGS) $(RECORDDEP) -c $*.cpp





#
# Targets:
#
all: $(TARGET) referencemanual.ps
$(TARGET): $(OBJS)
        rm -f $(TARGET)
        ar cr $(TARGET) $(OBJS)
                                                                          
                                                                          
        $(RANLIB) $(TARGET)
        chmod 644 $(TARGET)
Specific dependencies and the rules to form them





                                                                          
                                                                          
clean:
        -rm -f $(TARGET) $(OBJS) $(DEPENDENCIES)
referencemanual.ps: referencemanual.dvi bstsess.eps
        dvips referencemanual
referencemanual.dvi: referencemanual.tex $(PROGRAMS)
        latex referencemanual





algae.o: algae.cpp $(APATH)/algae/algae.h \
 $(ACONFIG)/algae/config.h \
 $(ACONFIG)/algae/string.h \
 $(APATH)/algae/astream.h \
 $(VPATH)/v/v_defs.h \
 $(VPATH)/v/vcolor.h $(APATH)/algae/visible.h \
 $(APATH)/algae/compound.h $(APATH)/algae/algaeapp.h \
 $(APATH)/algae/points.h $(VPATH)/v/vapp.h \
                                                                          
                                                                          
 $(VPATH)/v/vbaseitm.h $(VPATH)/v/vfont.h \
 $(VPATH)/v/vawinfo.h $(VPATH)/v/vmenu.h \
 $(VPATH)/v/vpane.h $(VPATH)/v/vtimer.h \
 $(VPATH)/v/vnotice.h $(VPATH)/v/vmodald.h \
 $(VPATH)/v/vdialog.h $(VPATH)/v/vbasewin.h \
 $(VPATH)/v/vcmdprnt.h $(VPATH)/v/vcmd.h \
 $(VPATH)/v/vreply.h $(VPATH)/v/vynreply.h
algaeapp.o: algaeapp.cpp $(APATH)/algae/algaeapp.h \
 $(ACONFIG)/algae/config.h \
 $(ACONFIG)/algae/string.h \
 $(APATH)/algae/points.h $(VPATH)/v/vapp.h \
 $(VPATH)/v/vbaseitm.h $(VPATH)/v/v_defs.h \
 $(VPATH)/v/vfont.h \
 $(VPATH)/v/vawinfo.h $(VPATH)/v/vmenu.h \
 $(VPATH)/v/vpane.h $(VPATH)/v/vtimer.h \
 $(APATH)/algae/animatpn.h $(VPATH)/v/vcanvas.h \
 $(VPATH)/v/vcpdc.h $(VPATH)/v/vwindc.h \
 $(VPATH)/v/vdc.h $(VPATH)/v/vpen.h \
 $(VPATH)/v/vcolor.h $(VPATH)/v/vbrush.h \
 $(VPATH)/v/vprinter.h $(VPATH)/v/vwinprtr.h \
 $(VPATH)/v/vmodald.h $(VPATH)/v/vdialog.h \
 $(VPATH)/v/vbasewin.h $(VPATH)/v/vcmdprnt.h \
 $(VPATH)/v/vcmd.h $(VPATH)/v/vmemdc.h \
 $(APATH)/algae/animatw.h $(APATH)/algae/timer.h \
 $(VPATH)/v/vcmdwin.h $(VPATH)/v/vwindow.h \
 $(VPATH)/v/vstatusp.h $(VPATH)/v/vcmdpane.h \
 $(APATH)/algae/defaults.h $(APATH)/algae/stdiow.h \
 $(APATH)/algae/stdiopn.h $(VPATH)/v/vtextcnv.h \
 $(APATH)/algae/tracew.h
   ...
These look ugly, but




1.4.0.0 make problems  




1.4.0.0 make problems  




1.4.0.0 Integrated CM databases  




1.4.0.0 CM support with an integrated DB  




1.4.0.0 Database-oriented CM tools  




1.4.0.0 Summary  




1.4.0.0 Summary