How to add a new component into the build system:

(By Carey. Loosely based on YIM dialogue with Peter Keller)

Here we use terms "source" and "build" workspace. The "source" ws is what CVS makes when you do a check out. The "build" workspace is where you build, it has symmlinks to the source files in the "source" workspace, the Makefile, etc.

  1. Add your source files to a subdirectory in the source workspace, entitled "condor_X", where X is the name of your component (make sure it's prefixed with "condor_")
  2. Copy the Imakefile from ../condor_dcskel into your condor_X source directory
  3. Edit the Imakefile as necessary - you need to include $(DAEMONCORE_LIB) into LIB= section iff your component is a DaemonCore process (e.g. condor_startd , as opposed to a standalone tool like condor_submit)
  4. In the ../Imakefile (the main Imakefile), make the following changes:
    1. Add your entry to the #define Programs... section (before dcskel in that section)
    2. !!!add just the name "X", NOT "condor_X"!!!
    3. Add object_target(X) right before object_target(dcskel)

  5. Go to your build workspace and do
    1. make reallyclean
    2. condor_imake // This should create a dir and a Makefile for your new component in the build space
    3. make
    4. make release