Sorry, I forgot the attachment

On Mon, 24 Jun 2002, Mike H. Miller wrote:

> Hi,
> I'm learning how to write modules for OpenDX now, and was trying to
> create samples of all three (inboard, outboard, and loadable) modules.
> My problem is that there are no valid makefiles for an x86 linux system
> in the sample directory. I found this (slightly modified) on the
> internet for an outboard:
>
> BASE = /s/gordo/paredsoft/local/dx
> FILES = outboard.o hello.o
> LITELIBS = -L$(BASE)/lib_linux -lDXlite -lm
> CC = gcc
> CFLAGS = -O -Dlinux -I$(BASE)/include
> LIBS   = -L$(BASE)/lib_linux -L/usr/X11R6/lib -L/usr/local/lib /usr/lib
> -lDX -lMagick -lpng -ltiff -lGL -lm -lX11 -ldl -lnsl
> # make the outboard
> hello:  hello.c
>         $(CC) $(CFLAGS) -DUSERMODULE=m_Hello -c $(BASE)/lib/outboard.c
>         $(CC) $(CFLAGS) -c hello.c
>         $(CC)  $(FILES) $(LITELIBS) -o hello
>
> And for an inboard, I succeeded in using this:
> SHELL = /bin/sh
> BASE = /s/gordo/paredsoft/local/dx
> include $(BASE)/lib_$(DXARCH)/arch.mak
> FILES_firstmodule = userfirstmodule.$(OBJEXT) firstmodule.$(OBJEXT)
> BIN = $(BASE)/bin
> CFLAGS = -I./ -I$(BASE)/include $(DX_CFLAGS)
> LDFLAGS = -L$(BASE)/lib_$(DXARCH)
> LIBS = -lDX $(DX_GL_LINK_LIBS) $(DXEXECLINKLIBS)
> OLIBS = -lDXlite -lm
> BIN = $(BASE)/bin
> # create the necessary executable
> dxexec: $(FILES_firstmodule)
>         $(CC) $(LDFLAGS) $(FILES_firstmodule) $(LIBS) -o dxexec
> .c.o: ; cc -c $(DXABI) $(DX_RTL_CFLAGS) $(CFLAGS) $*.c
> .C.o: ; cc -c $(DXABI) $(DX_RTL_CFLAGS) $(CFLAGS) $*.C
> # a command to run the user module
> run: dxexec
>         dx -edit -exec ./dxexec -mdf firstmodule.mdf &
> # make the user files
> userfirstmodule.c: firstmodule.mdf
>         $(BIN)/mdf2c firstmodule.mdf > userfirstmodule.c
> # kluge for when DXARCH isn't set
> $(BASE)/lib_/arch.mak:
>         (export DXARCH=`dx -whicharch` ; $(MAKE) -f firstmodule.make )
>        echo YOU NEED TO SET DXARCH via dx -whicharch
>
> Both compile just fine. The inboard actually works great, but since that
> only allows one module, that's not my ideal solution. The outboard seems
> to work, but gives an "error connecting to localhost" when I try and run
> it. My real problem is that I want to be able to create loadable
> modules-- does anyone have a Makefile to do that? Thanks.
>
> --
> Mike Miller
> [EMAIL PROTECTED] ->
> [EMAIL PROTECTED]
>
SHELL   = /bin/sh
# klftdh06 base
#BASE           = /usr/local/dx
# klftcs01 BASE
BASE            = /opt/dx-4.1.3/dx
MYLIBDIR        =/home/eelco/prog/mylib

############################################################################
# The path definitions                                                          
                                                                                
#
############################################################################
# import the general dx configutation make file
include $(BASE)/lib_$(DXARCH)/arch.mak

BIN             = $(BASE)/bin
DXEXEC  = dxexec

# define some directories
SRCDIR  = ./src
SRCDIR_IO= $(SRCDIR)/io
SRCDIR_UT= $(SRCDIR)/utils
SRCDIR_IM= $(SRCDIR)/image
INCLDIR = ./incl
OBJDIR  = ./obj
LIBDIR  = ./lib
#LIBDIR = $(MYLIBDIR)
EXEDIR  = ./bin

# define the library files
LIBFILES                        =       $(LIBDIR)/libSC.a  \
                                                $(LIBDIR)/libvec.a \
                                                $(LIBDIR)/libutil.a \
                                                $(LIBDIR)/libNRc.a \
                                                /opt/fftw-2.1.3/lib

#
# define the libraries added by the user
USERLIBS =  -lsfftw -lSC -lvec -lNRc -lutil 
#
# define all the include files
INCL            =       $(INCLDIR)/error.h\
                                $(INCLDIR)/SC.h\
                                $(INCLDIR)/util.h\
                                $(INCLDIR)/nrutil.h\
                                $(INCLDIR)/nr.h\
                                $(INCLDIR)/libvec.h
#
############################################################################


############################################################################
# The MODULES declarations                                                      
                                                                                
#
#C##########################################################################
#
#A#
# AddImage
ROOT_AddImage   = AddImage
OBJ_AddImage    = $(OBJDIR)/$(ROOT_AddImage).o
EXE_AddImage    = $(EXEDIR)/$(ROOT_AddImage)
MDF_AddImage    = $(SRCDIR_IM)/$(ROOT_AddImage).mdf
# AverageImage
ROOT_AverageImage = AverageImage
OBJ_AverageImage  = $(OBJDIR)/$(ROOT_AverageImage).o
EXE_AverageImage  = $(EXEDIR)/$(ROOT_AverageImage)
MDF_AverageImage        = $(SRCDIR_IM)/$(ROOT_AverageImage).mdf
#C#
# Cartesian2Polar
ROOT_Cartesian2Polar = Cartesian2Polar
OBJ_Cartesian2Polar  = $(OBJDIR)/$(ROOT_Cartesian2Polar).o
EXE_Cartesian2Polar  = $(EXEDIR)/$(ROOT_Cartesian2Polar)
MDF_Cartesian2Polar     = $(SRCDIR_IM)/$(ROOT_Cartesian2Polar).mdf
# CopyPartImage
ROOT_CopyPartImage = CopyPartImage
OBJ_CopyPartImage  = $(OBJDIR)/$(ROOT_CopyPartImage).o
EXE_CopyPartImage  = $(EXEDIR)/$(ROOT_CopyPartImage)
MDF_CopyPartImage       = $(SRCDIR_IM)/$(ROOT_CopyPartImage).mdf
#
# DevideImage
ROOT_DevideImage = DevideImage
OBJ_DevideImage  = $(OBJDIR)/$(ROOT_DevideImage).o
EXE_DevideImage  = $(EXEDIR)/$(ROOT_DevideImage)
MDF_DevideImage = $(SRCDIR_IM)/$(ROOT_DevideImage).mdf
# DevideImage2D
ROOT_DevideImage2D = DevideImage2D
OBJ_DevideImage2D  = $(OBJDIR)/$(ROOT_DevideImage2D).o
EXE_DevideImage2D  = $(EXEDIR)/$(ROOT_DevideImage2D)
MDF_DevideImage2D       = $(SRCDIR_IM)/$(ROOT_DevideImage2D).mdf
#E#
# ExportICS
ROOT_ExportICS = ExportICS
OBJ_ExportICS  = $(OBJDIR)/$(ROOT_ExportICS).o
EXE_ExportICS  = $(EXEDIR)/$(ROOT_ExportICS)
MDF_ExportICS   = $(SRCDIR_IO)/$(ROOT_ExportICS).mdf
# ExportAsci
ROOT_ExportAsci = ExportAsci
OBJ_ExportAsci  = $(OBJDIR)/$(ROOT_ExportAsci).o
EXE_ExportAsci  = $(EXEDIR)/$(ROOT_ExportAsci)
MDF_ExportAsci  = $(SRCDIR_IO)/$(ROOT_ExportAsci).mdf
# ExportTecplot
ROOT_ExportTecplot = ExportTecplot
OBJ_ExportTecplot  = $(OBJDIR)/$(ROOT_ExportTecplot).o
EXE_ExportTecplot  = $(EXEDIR)/$(ROOT_ExportTecplot)
MDF_ExportTecplot       = $(SRCDIR_IO)/$(ROOT_ExportTecplot).mdf
# ExtractFileName
ROOT_ExtractFileName = ExtractFileName
OBJ_ExtractFileName  = $(OBJDIR)/$(ROOT_ExtractFileName).o
EXE_ExtractFileName  = $(EXEDIR)/$(ROOT_ExtractFileName)
MDF_ExtractFileName     = $(SRCDIR_UT)/$(ROOT_ExtractFileName).mdf
#F#
# FFTW
ROOT_FFTW = FFTW
OBJ_FFTW  = $(OBJDIR)/$(ROOT_FFTW).o
EXE_FFTW  = $(EXEDIR)/$(ROOT_FFTW)
MDF_FFTW        = $(SRCDIR_IM)/$(ROOT_FFTW).mdf
#G#
# GenNoise module
ROOT_GenNoise = GenNoise
OBJ_GenNoise  = $(OBJDIR)/$(ROOT_GenNoise).o
EXE_GenNoise  = $(EXEDIR)/$(ROOT_GenNoise)
MDF_GenNoise    = $(SRCDIR_IM)/$(ROOT_GenNoise).mdf
# GenQuadratic module
ROOT_GenQuadratic = GenQuadratic
OBJ_GenQuadratic  = $(OBJDIR)/$(ROOT_GenQuadratic).o
EXE_GenQuadratic  = $(EXEDIR)/$(ROOT_GenQuadratic)
MDF_GenQuadratic        = $(SRCDIR_IM)/$(ROOT_GenQuadratic).mdf
# GetCameraSettings module
ROOT_GetCameraSettings = GetCameraSettings
OBJ_GetCameraSettings  = $(OBJDIR)/$(ROOT_GetCameraSettings).o
EXE_GetCameraSettings  = $(EXEDIR)/$(ROOT_GetCameraSettings)
MDF_GetCameraSettings   = $(SRCDIR_UT)/$(ROOT_GetCameraSettings).mdf
# GetCounts module
ROOT_GetCounts = GetCounts
OBJ_GetCounts  = $(OBJDIR)/$(ROOT_GetCounts).o
EXE_GetCounts  = $(EXEDIR)/$(ROOT_GetCounts)
MDF_GetCounts   = $(SRCDIR_UT)/$(ROOT_GetCounts).mdf
# GetDimsICS module
ROOT_GetDimsICS = GetDimsICS
OBJ_GetDimsICS  = $(OBJDIR)/$(ROOT_GetDimsICS).o
EXE_GetDimsICS  = $(EXEDIR)/$(ROOT_GetDimsICS)
MDF_GetDimsICS  = $(SRCDIR_IO)/$(ROOT_GetDimsICS).mdf
# GetPeak module
ROOT_GetPeak = GetPeak
OBJ_GetPeak  = $(OBJDIR)/$(ROOT_GetPeak).o
EXE_GetPeak  = $(EXEDIR)/$(ROOT_GetPeak)
MDF_GetPeak     = $(SRCDIR_IM)/$(ROOT_GetPeak).mdf
# GetPeaks module
ROOT_GetPeaks = GetPeaks
OBJ_GetPeaks  = $(OBJDIR)/$(ROOT_GetPeaks).o
EXE_GetPeaks  = $(EXEDIR)/$(ROOT_GetPeaks)
MDF_GetPeaks    = $(SRCDIR_IM)/$(ROOT_GetPeaks).mdf
# Gradient3D26Points module
ROOT_Gradient3D26Points = Gradient3D26Points
OBJ_Gradient3D26Points  = $(OBJDIR)/$(ROOT_Gradient3D26Points).o
EXE_Gradient3D26Points  = $(EXEDIR)/$(ROOT_Gradient3D26Points)
MDF_Gradient3D26Points  = $(SRCDIR_IM)/$(ROOT_Gradient3D26Points).mdf
# Gradient3D module
ROOT_Gradient3D = Gradient3D
OBJ_Gradient3D  = $(OBJDIR)/$(ROOT_Gradient3D).o
EXE_Gradient3D  = $(EXEDIR)/$(ROOT_Gradient3D)
MDF_Gradient3D  = $(SRCDIR_IM)/$(ROOT_Gradient3D).mdf
# Gradient4D module
ROOT_Gradient4D = Gradient4D
OBJ_Gradient4D  = $(OBJDIR)/$(ROOT_Gradient4D).o
EXE_Gradient4D  = $(EXEDIR)/$(ROOT_Gradient4D)
MDF_Gradient4D  = $(SRCDIR_IM)/$(ROOT_Gradient4D).mdf
#H#
# HalfSize
ROOT_HalfSize = HalfSize
OBJ_HalfSize  = $(OBJDIR)/$(ROOT_HalfSize).o
EXE_HalfSize  = $(EXEDIR)/$(ROOT_HalfSize)
MDF_HalfSize    = $(SRCDIR_IM)/$(ROOT_HalfSize).mdf
#I#
# ImortICS module
ROOT_ImportICS = ImportICS
OBJ_ImportICS  = $(OBJDIR)/$(ROOT_ImportICS).o
EXE_ImportICS  = $(EXEDIR)/$(ROOT_ImportICS)
MDF_ImportICS   = $(SRCDIR_IO)/$(ROOT_ImportICS).mdf
#M#
# MultiplyFloat
ROOT_MultiplyFloat = MultiplyFloat
OBJ_MultiplyFloat  = $(OBJDIR)/$(ROOT_MultiplyFloat).o
EXE_MultiplyFloat  = $(EXEDIR)/$(ROOT_MultiplyFloat)
MDF_MultiplyFloat       = $(SRCDIR_IM)/$(ROOT_MultiplyFloat).mdf
#S#
# Statistics2
ROOT_Statistics2 = Statistics2
OBJ_Statistics2  = $(OBJDIR)/$(ROOT_Statistics2).o
EXE_Statistics2  = $(EXEDIR)/$(ROOT_Statistics2)
MDF_Statistics2 = $(SRCDIR_IM)/$(ROOT_Statistics2).mdf
# SubtractImage
ROOT_SubtractImage = SubtractImage
OBJ_SubtractImage  = $(OBJDIR)/$(ROOT_SubtractImage).o
EXE_SubtractImage  = $(EXEDIR)/$(ROOT_SubtractImage)
MDF_SubtractImage       = $(SRCDIR_IM)/$(ROOT_SubtractImage).mdf
# SubtractImage2D
ROOT_SubtractImage2D = SubtractImage2D
OBJ_SubtractImage2D  = $(OBJDIR)/$(ROOT_SubtractImage2D).o
EXE_SubtractImage2D  = $(EXEDIR)/$(ROOT_SubtractImage2D)
MDF_SubtractImage2D     = $(SRCDIR_IM)/$(ROOT_SubtractImage2D).mdf
# Sum
ROOT_Sum = Sum
OBJ_Sum  = $(OBJDIR)/$(ROOT_Sum).o
EXE_Sum  = $(EXEDIR)/$(ROOT_Sum)
MDF_Sum = $(SRCDIR_UT)/$(ROOT_Sum).mdf
# SumHistogram
ROOT_SumHistogram = SumHistogram
OBJ_SumHistogram  = $(OBJDIR)/$(ROOT_SumHistogram).o
EXE_SumHistogram  = $(EXEDIR)/$(ROOT_SumHistogram)
MDF_SumHistogram        = $(SRCDIR_UT)/$(ROOT_SumHistogram).mdf
# SumMask
ROOT_SumMask = SumMask
OBJ_SumMask  = $(OBJDIR)/$(ROOT_SumMask).o
EXE_SumMask  = $(EXEDIR)/$(ROOT_SumMask)
MDF_SumMask     = $(SRCDIR_UT)/$(ROOT_SumMask).mdf
#T#
# TransformImage
ROOT_TransformImage = TransformImage
OBJ_TransformImage  = $(OBJDIR)/$(ROOT_TransformImage).o
EXE_TransformImage  = $(EXEDIR)/$(ROOT_TransformImage)
MDF_TransformImage      = $(SRCDIR_IM)/$(ROOT_TransformImage).mdf
#W#
# WriteString
ROOT_WriteString = WriteString
OBJ_WriteString  = $(OBJDIR)/$(ROOT_WriteString).o
EXE_WriteString  = $(EXEDIR)/$(ROOT_WriteString)
MDF_WriteString = $(SRCDIR_IO)/$(ROOT_WriteString).mdf

############################################################################
# Add all the stuff into variables                                              
                                                                #
############################################################################
# add all the file into one variable
OBJS                    = $(OBJ_ImportICS) $(OBJ_GetDimsICS) 
$(OBJ_ExtractFileName)     \
                                  $(OBJ_CopyPartImage) $(OBJ_HalfSize)  
$(OBJ_GenQuadratic)  \
                                  $(OBJ_GetCounts) $(OBJ_GetCameraSettings) 
$(OBJ_AverageImage) \
                                  $(OBJ_SubtractImage2D) $(OBJ_MultiplyFloat) 
$(OBJ_SubtractImage)\
                                  $(OBJ_AddImage) $(OBJ_Sum) 
$(OBJ_Cartesian2Polar)\
                                  $(OBJ_DevideImage2D) $(OBJ_DevideImage) 
$(OBJ_TransformImage)\
                                  $(OBJ_SumHistogram) $(OBJ_SumMask) 
$(OBJ_Gradient3D26Points) \
                                  $(OBJ_GetPeak) $(OBJ_ExportTecplot) 
$(OBJ_GetPeaks)\
                                  $(OBJ_ExportAsci) $(OBJ_FFTW) 
$(OBJ_Statistics2) $(OBJ_ExportICS)\
                                  $(OBJ_WriteString) $(OBJ_Gradient3D) 
$(OBJ_Gradient4D)\
                                  $(OBJ_GenNoise)


                                        
                 
# add all the executable into one variable
EXECS                   = $(EXE_ImportICS) $(EXE_GetDimsICS) 
$(EXE_ExtractFileName) \
                                  $(EXE_CopyPartImage)  $(EXE_HalfSize) 
$(EXE_GenQuadratic) \
                                  $(EXE_GetCounts) $(EXE_GetCameraSettings) 
$(EXE_AverageImage) \
                                  $(EXE_SubtractImage2D) $(EXE_MultiplyFloat) 
$(EXE_SubtractImage)\
                                  $(EXE_AddImage) $(EXE_Sum) 
$(EXE_Cartesian2Polar)\
                                  $(EXE_DevideImage2D) $(EXE_DevideImage) 
$(EXE_TransformImage)\
                                  $(EXE_SumHistogram) $(EXE_SumMask) 
$(EXE_Gradient3D26Points)\
                                  $(EXE_GetPeak) $(EXE_ExportTecplot) 
$(EXE_GetPeaks)\
                                  $(EXE_ExportAsci) $(EXE_FFTW) 
$(EXE_Statistics2) $(EXE_ExportICS)\
                                  $(EXE_WriteString) $(EXE_Gradient3D) 
$(EXE_Gradient4D)\
                                  $(EXE_GenNoise)

# add all the mdf file into one variable
MDFS                    =       $(MDF_ImportICS) $(MDF_GetDimsICS) \
                                        $(MDF_ExtractFileName) 
$(MDF_CopyPartImage) \
                                        $(MDF_HalfSize) $(MDF_GenQuadratic) 
$(MDF_GetCounts) \
                                        $(MDF_GetCameraSettings) 
$(MDF_AverageImage) \
                                        $(MDF_SubtractImage2D) 
$(MDF_MultiplyFloat) $(MDF_SubtractImage)\
                                        $(MDF_AddImage) $(MDF_Sum) 
$(MDF_Cartesian2Polar)\
                                   $(MDF_DevideImage2D) $(MDF_DevideImage) 
$(MDF_TransformImage)\
                                        $(MDF_SumHistogram) $(MDF_SumMask) 
$(MDF_Gradient3D26Points) \
                                   $(MDF_GetPeak) $(MDF_ExportTecplot) 
$(MDF_GetPeaks)\
                                   $(MDF_ExportAsci) $(MDF_FFTW) 
$(MDF_Statistics2) \
                                        $(MDF_ExportICS) $(MDF_WriteString) 
$(MDF_Gradient3D)   \
                                        $(MDF_Gradient4D) $(MDF_GenNoise)
# The compilation flags and libraries                                           
                                                        #
############################################################################
# define the C comilation flags. Include here also the search path of all the
# C include file using -I.. option. 
# For debugging: add the -g option !! Remove is to optimize.
# If you want to optimize: add -O2 here
# Just uncomment the proper line. The distinction is made in the
# /usr/local/dx/lib_linux/arch.mak file
#CFLAGS = -I./ -I$(BASE)/include $(DXCFLAGS) -I$(INCLDIR)
CFLAGS = -I./ -I$(BASE)/include $(DXCFLAGSDEBUG) -I$(INCLDIR) 
-I/opt/fftw-2.1.3/include

# define the C libraries.  Inlude here the search path to your 
# libraries with -L
LDFLAGS = -L$(BASE)/lib_$(DXARCH) -L$(LIBDIR) -L/opt/fftw-2.1.3/lib

# put all the libraries into the variable LIBS 
#
LIBS = -lDX $(DX_GL_LINK_LIBS) $(DXEXECLINKLIBS) 

# define the search path: Import that all sources and object are in it!!!
VPATH   = .:$(OBJDIR):$(SRCDIR):$(SRCDIR_IO):$(SRCDIR_UT):\
             $(SRCDIR_IM)

############################################################################
# The target the build the stuff                                                
                                                                        #
############################################################################

all:    $(EXECS)

# Make the object files from the .c files
$(OBJDIR)/%.o: %.c $(INCL) $(LIBFILES)
                  @echo compiling $<
                  @$(CC) $(DXABI) $(DX_RTL_CFLAGS) $(CFLAGS) -c $< -o 
$(OBJDIR)/$(@F)

%.c: incl/error.h

# create the necessary executable
#A#
$(EXE_AddImage): $(OBJ_AddImage) $(MDF_AddImage) 
        @echo compiling $(MDF_AddImage)
        @$(BIN)/mdf2c -m $(MDF_AddImage) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_AddImage)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_AddImage) $(OBJ_AddImage) 
user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_AverageImage): $(OBJ_AverageImage) $(MDF_AverageImage)
        @echo compiling $(MDF_AverageImage)
        @$(BIN)/mdf2c -m $(MDF_AverageImage) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_AverageImage)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_AverageImage) 
$(OBJ_AverageImage) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#C#
$(EXE_Cartesian2Polar): $(OBJ_Cartesian2Polar) $(MDF_Cartesian2Polar)
        @echo compiling $(MDF_Cartesian2Polar)
        @$(BIN)/mdf2c -m $(MDF_Cartesian2Polar) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_Cartesian2Polar)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_Cartesian2Polar) 
$(OBJ_Cartesian2Polar) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_CopyPartImage): $(OBJ_CopyPartImage) $(MDF_CopyPartImage)
        @echo compiling $(MDF_CopyPartImage)
        @$(BIN)/mdf2c -m $(MDF_CopyPartImage) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_CopyPartImage)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_CopyPartImage) 
$(OBJ_CopyPartImage) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#D#
$(EXE_DevideImage): $(OBJ_DevideImage) $(MDF_DevideImage)
        @echo compiling $(MDF_DevideImage)
        @$(BIN)/mdf2c -m $(MDF_DevideImage) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_DevideImage)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_DevideImage) 
$(OBJ_DevideImage) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_DevideImage2D): $(OBJ_DevideImage2D) $(MDF_DevideImage2D)
        @echo compiling $(MDF_DevideImage2D)
        @$(BIN)/mdf2c -m $(MDF_DevideImage2D) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_DevideImage2D)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_DevideImage2D) 
$(OBJ_DevideImage2D) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#E#
$(EXE_ExportICS): $(OBJ_ExportICS) $(MDF_ExportICS)
        @echo compiling $(MDF_ExportICS)
        @$(BIN)/mdf2c -m $(MDF_ExportICS) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_ExportICS)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_ExportICS) 
$(OBJ_ExportICS) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_ExportAsci): $(OBJ_ExportAsci) $(MDF_ExportAsci)
        @echo compiling $(MDF_ExportAsci)
        @$(BIN)/mdf2c -m $(MDF_ExportAsci) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_ExportAsci)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_ExportAsci) 
$(OBJ_ExportAsci) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_ExportTecplot): $(OBJ_ExportTecplot) $(MDF_ExportTecplot)
        @echo compiling $(MDF_ExportTecplot)
        @$(BIN)/mdf2c -m $(MDF_ExportTecplot) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_ExportTecplot)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_ExportTecplot) 
$(OBJ_ExportTecplot) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_ExtractFileName): $(OBJ_ExtractFileName) $(MDF_ExtractFileName)
        @echo compiling $(MDF_ExtractFileName)
        @$(BIN)/mdf2c -m $(MDF_ExtractFileName) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_ExtractFileName)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_ExtractFileName) 
$(OBJ_ExtractFileName) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#F#
$(EXE_FFTW): $(OBJ_FFTW) $(MDF_FFTW)
        @echo compiling $(MDF_FFTW)
        @$(BIN)/mdf2c -m $(MDF_FFTW) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_FFTW)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_FFTW) $(OBJ_FFTW) user.o 
$(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#G#
$(EXE_GenNoise): $(OBJ_GenNoise) $(MDF_GenNoise)
        @echo compiling $(MDF_GenNoise)
        @$(BIN)/mdf2c -m $(MDF_GenNoise) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_GenNoise)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_GenNoise) $(OBJ_GenNoise) 
user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_GenQuadratic): $(OBJ_GenQuadratic) $(MDF_GenQuadratic)
        @echo compiling $(MDF_GenQuadratic)
        @$(BIN)/mdf2c -m $(MDF_GenQuadratic) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_GenQuadratic)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_GenQuadratic) 
$(OBJ_GenQuadratic) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_GetCameraSettings): $(OBJ_GetCameraSettings) $(MDF_GetCameraSettings)
        @echo compiling $(MDF_GetCameraSettings)
        @$(BIN)/mdf2c -m $(MDF_GetCameraSettings) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_GetCameraSettings)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_GetCameraSettings) 
$(OBJ_GetCameraSettings) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_GetCounts): $(OBJ_GetCounts) $(LIBFILES) $(MDF_GetCounts)
        @echo compiling $(MDF_GetCounts)
        @$(BIN)/mdf2c -m $(MDF_GetCounts) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_GetCounts)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_GetCounts) 
$(OBJ_GetCounts) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_GetDimsICS): $(OBJ_GetDimsICS) $(LIBFILES) $(MDF_GetDimsICS)
        @echo compiling $(MDF_GetDimsICS)
        @$(BIN)/mdf2c -m $(MDF_GetDimsICS) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_GetDimsICS)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_GetDimsICS) 
$(OBJ_GetDimsICS) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_GetPeak): $(OBJ_GetPeak) $(LIBFILES) $(MDF_GetPeak)
        @echo compiling $(MDF_GetPeak)
        @$(BIN)/mdf2c -m $(MDF_GetPeak) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_GetPeak)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_GetPeak) $(OBJ_GetPeak) 
user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_GetPeaks): $(OBJ_GetPeaks) $(LIBFILES) $(MDF_GetPeaks)
        @echo compiling $(MDF_GetPeaks)
        @$(BIN)/mdf2c -m $(MDF_GetPeaks) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_GetPeaks)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_GetPeaks) $(OBJ_GetPeaks) 
user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_Gradient3D26Points): $(OBJ_Gradient3D26Points) $(LIBFILES) 
$(MDF_Gradient3D26Points)
        @echo compiling $(MDF_Gradient3D26Points)
        @$(BIN)/mdf2c -m $(MDF_Gradient3D26Points) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_Gradient3D26Points)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_Gradient3D26Points) 
$(OBJ_Gradient3D26Points) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_Gradient3D): $(OBJ_Gradient3D) $(LIBFILES) $(MDF_Gradient3D)
        @echo compiling $(MDF_Gradient3D)
        @$(BIN)/mdf2c -m $(MDF_Gradient3D) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_Gradient3D)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_Gradient3D) 
$(OBJ_Gradient3D) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_Gradient4D): $(OBJ_Gradient4D) $(LIBFILES) $(MDF_Gradient4D)
        @echo compiling $(MDF_Gradient4D)
        @$(BIN)/mdf2c -m $(MDF_Gradient4D) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_Gradient4D)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_Gradient4D) 
$(OBJ_Gradient4D) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#H#
$(EXE_HalfSize): $(OBJ_HalfSize) $(MDF_HalfSize)
        @echo compiling $(MDF_HalfSize)
        @$(BIN)/mdf2c -m $(MDF_HalfSize) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_HalfSize)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_HalfSize) $(OBJ_HalfSize) 
user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#I#
$(EXE_ImportICS): $(OBJ_ImportICS) $(LIBFILES) $(MDF_ImportICS)
        @echo compiling $(MDF_ImportICS)
        @$(BIN)/mdf2c -m $(MDF_ImportICS) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_ImportICS)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_ImportICS) 
$(OBJ_ImportICS) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#M#
$(EXE_MultiplyFloat): $(OBJ_MultiplyFloat) $(MDF_MultiplyFloat)
        @echo compiling $(MDF_MultiplyFloat)
        @$(BIN)/mdf2c -m $(MDF_MultiplyFloat) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_MultiplyFloat)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_MultiplyFloat) 
$(OBJ_MultiplyFloat) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#S#
$(EXE_Statistics2): $(OBJ_Statistics2) $(MDF_Statistics2)
        @echo compiling $(MDF_Statistics2)
        @$(BIN)/mdf2c -m $(MDF_Statistics2) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_Statistics2)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_Statistics2) 
$(OBJ_Statistics2) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_SubtractImage): $(OBJ_SubtractImage) $(MDF_SubtractImage)
        @echo compiling $(MDF_SubtractImage)
        @$(BIN)/mdf2c -m $(MDF_SubtractImage) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_SubtractImage)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_SubtractImage) 
$(OBJ_SubtractImage) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_SubtractImage2D): $(OBJ_SubtractImage2D) $(MDF_SubtractImage2D)
        @echo compiling $(MDF_SubtractImage2D)
        @$(BIN)/mdf2c -m $(MDF_SubtractImage2D) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_SubtractImage2D)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_SubtractImage2D) 
$(OBJ_SubtractImage2D) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_Sum): $(OBJ_Sum) $(MDF_Sum)
        @echo compiling $(MDF_Sum)
        @$(BIN)/mdf2c -m $(MDF_Sum) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_Sum)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_Sum) $(OBJ_Sum) user.o 
$(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_SumHistogram): $(OBJ_SumHistogram) $(MDF_SumHistogram)
        @echo compiling $(MDF_SumHistogram)
        @$(BIN)/mdf2c -m $(MDF_SumHistogram) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_SumHistogram)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_SumHistogram) 
$(OBJ_SumHistogram) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
$(EXE_SumMask): $(OBJ_SumMask) $(MDF_SumMask)
        @echo compiling $(MDF_SumMask)
        @$(BIN)/mdf2c -m $(MDF_SumMask) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_SumMask)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_SumMask) $(OBJ_SumMask) 
user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#T#
$(EXE_TransformImage): $(OBJ_TransformImage) $(MDF_TransformImage)
        @echo compiling $(MDF_TransformImage)
        @$(BIN)/mdf2c -m $(MDF_TransformImage) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_TransformImage)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_TransformImage) 
$(OBJ_TransformImage) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
#W#
$(EXE_WriteString): $(OBJ_WriteString) $(MDF_WriteString)
        @echo compiling $(MDF_WriteString)
        @$(BIN)/mdf2c -m $(MDF_WriteString) > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo "linking   $(EXE_WriteString)"
        @$(SHARED_LINK) $(DXABI) $(LDFLAGS) -o $(EXE_WriteString) 
$(OBJ_WriteString) user.o $(DX_RTL_LDFLAGS) $(SYSLIBS) $(USERLIBS)
#
exe:
        @echo "making  user.mdf"
        @cat $(MDFS) > user.mdf
        @$(BIN)/mdf2c user.mdf > user.c
        @$(CC) $(CFLAGS) -c user.c
        @echo linking executable $(DXEXEC)
        @$(CC) $(LDFLAGS) $(OBJS) user.o $(LIBS) $(USERLIBS) -o 
$(EXEDIR)/$(DXEXEC)
        @rm user.*
#
# a command to run the user module
edit: 
        @cat $(MDFS) > user.mdf
        dx -edit $(FILE) -mdf user.mdf &
#
# run in executing mode with a given net file
run: 
        @cat $(MDFS) > user.mdf
        dx -image -menubar $(FILE) -mdf user.mdf &
#
# run in script mode
runscript: 
        @cat $(MDFS) > user.mdf
        dx -image -menubar $(FILE) -mdf user.mdf -script & 
#
# edit the inboard executable
editexe: 
        @cat $(MDFS) |awk '$$1!="LOADABLE" {print $0}' > user.mdf
        dx -edit -exec $(EXEDIR)/$(DXEXEC) -mdf user.mdf &
#
# run the inboard executable
runexe: 
        @cat $(MDFS) |awk '$$1!="LOADABLE" {print $0}' > user.mdf
        dx -image -menubar -exec $(EXEDIR)/$(DXEXEC) -mdf user.mdf &
#
#
#debug: 
#       @cat $(MDFS) > user.mdf
#       dx -uionly -mdf user.mdf &
#       ddd dx -edit -mdf user.mdf &
#
# run the inboard executable in debugging mode
debug: 
        @cat $(MDFS) |awk '$$1!="LOADABLE" {print $0}' > user.mdf
        dx -uionly $(FILE) -exec $(EXEDIR)/$(DXEXEC) -mdf user.mdf &
        ddd $(EXEDIR)/$(DXEXEC) &
#       

clean:
                  @echo cleaning objects...
                        @find . -name "*.o" -exec rm {} \;
                        @find . -name "*~" -exec rm {} \;
                        @find . -name "user.*" -exec rm {} \;
#
show:
                        @echo $(VPATH)
                        @echo $(INCL)
#
back:
                        @echo backing up net files
                        @tar uvf Backup.tar ./net/*.net ./net/*.cfg  ./Makefile
                        @tar uvf Backup.tar ./macros/*.net ./Makefile
showback:
                        @echo showing backup net files
                        tar tvf Backup.tar
getback:
                   @ls $(FILE).net $(FILE).cfg | awk \
                                                '{printf("mv %s 
~/trashbin\n",$$0)}' |bash
                        @tar xf Backup.tar -O $(FILE).net | awk\
                                        '{if ($$0~/time:/) OUT=0;               
\
                                          if ($$0~/time:/ && $$0 ~ /$(TIME)/) 
OUT = 1;  \
                                          if (OUT == 1) print $$0}' > 
$(FILE).net
                        @tar xf Backup.tar -O $(FILE).cfg | awk\
                                        '{if ($$0~/time:/) OUT=0;               
\
                                          if ($$0~/time:/ && $$0 ~ /$(TIME)/) 
OUT = 1;  \
                                          if (OUT == 1) print $$0}' > 
$(FILE).cfg
#
cleanall:
                  @echo cleaning binaries...
                  @ls bin | awk '{printf("mv ./bin/%s ~/trashbin\n",$$0)}' |bash
#
help:
                  @echo Makefile options
                  @echo "make                           : compile and link 
objects to loadable moldulels"
                  @echo "make exe                       : compile and link 
objects to inboard executable"
                  @echo "make edit [FILE=<netfile>]     : edit DX netfile with 
loadable modules"
                  @echo "make editexe [FILE=<netfile>]  : edit DX netfile as 
inboard executable"
                  @echo "make run [FILE=<netfile>]      : run DX netfile with 
loadable modules"
                  @echo "make runexe [FILE=<netfile>]   : run DX netfile as 
inboard executable"
                  @echo "make debug [FILE=<netfile>]    : debug a opendx as 
inboard executable"
                  @echo "make clean                     : remove all object and 
bak files"
                  @echo "make cleanall                  : clean + remove all 
loadable executables"
                  @echo "make back                      : makes a backup of all 
the .net and .cfg files"
                  @echo "make showback                  : shows a list of all 
the back up files"
                  @echo "make getback FILE=<filename> TIME=<timestamp> :"
                  @echo "                 restores the  back up file <filename> 
(without extension)"
                  @echo "                 and the given time stamp"

Reply via email to