Imakefile   [plain text]


XCOMM $XFree86: xc/lib/dps/Imakefile,v 1.17 2003/10/21 17:41:45 tsi Exp $

#define DoNormalLib NormalLibDps
#define DoSharedLib SharedLibDps
#define DoExtraLib SharedLibDps
#define DoDebugLib DebugLibDps
#define DoProfileLib ProfileLibDps
#define LibName dps
#define SoRev SODPSREV
#define IncSubdir DPS

#ifdef SharedDPSReqs
REQUIREDLIBS = SharedDPSReqs
#endif

XCOMM  The Client Library uses definitions just like Xlib for network
XCOMM  capabilities, such as TCPCONN, UNIXCONN, and DNETCONN.  See
XCOMM  csconndi.c and csopendi.c

XCOMM The connection code should be rewritten to use xtrans.  The STREAMSCONN
XCOMM code here needs work.  For now force ConnectionFlags to be
XCOMM  -DTCPCONN -DUNIXCONN

#undef ConnectionFlags
#define ConnectionFlags -DTCPCONN -DUNIXCONN

        DEFINES = -DXDPS -DCSDPS ConnectionFlags
            CAT = cat
            SED = sed
            AWK = awk
           SORT = sort
         PSWRAP = PsWrap

COMMONOBJECTFILES = \
	dpsclient.o\
	dpsprintf.o\
	dpsexcept.o\
	dpsdict.o\
	dpsabbrev.o

COMMONSOURCEFILES = \
	dpsclient.c\
	dpsprintf.c\
	dpsexcept.c\
	dpsdict.c\
	dpsabbrev.c

XOBJECTFILES = \
	dpsXclient.o\
	dpssysnames.o\
	dpsXpriv.o\
	XDPS.o\
	dpsXtdisp.o\
	dpsXcmu.o

XSOURCEFILES = \
	dpsXclient.c\
	dpssysnames.c\
	dpsXpriv.c\
	XDPS.c\
	dpsXtdisp.c\
	dpsXcmu.c

XCSDPSOBJECTFILES = \
	cslibext.o\
	csopendi.o\
	csconndi.o\
	csstartNX.o\
	csfindNX.o\
	cslibint.o

XCSDPSSOURCEFILES = \
	cslibext.c\
	csopendi.c\
	csconndi.c\
	csstartNX.c\
	csfindNX.c\
	cslibint.c

DPSOPSOBJECTS = \
    dpsclrops.o\
    dpsctrlops.o\
    dpsctxtops.o\
    dpsdataops.o\
    dpsfontops.o\
    dpsgsttops.o\
    dpsioops.o\
    dpsmathops.o\
    dpsmtrxops.o\
    dpsmiscops.o\
    dpspntops.o\
    dpspathops.o\
    dpssysops.o\
    dpswinops.o\
    dpsopstack.o\
    dpsXops.o\
    dpsl2ops.o

PSOPSOBJECTS = \
    psclrops.o\
    psctrlops.o\
    psctxtops.o\
    psdataops.o\
    psfontops.o\
    psgsttops.o\
    psioops.o\
    psmathops.o\
    psmtrxops.o\
    psmiscops.o\
    pspntops.o\
    pspathops.o\
    pssysops.o\
    pswinops.o\
    psopstack.o\
    psXops.o\
    psl2ops.o

DPSOPSHEADERFILES = \
    dpsclrops.h\
    dpsctrlops.h\
    dpsctxtops.h\
    dpsdataops.h\
    dpsfontops.h\
    dpsgsttops.h\
    dpsioops.h\
    dpsmathops.h\
    dpsmtrxops.h\
    dpsmiscops.h\
    dpsopstack.h\
    dpspntops.h\
    dpspathops.h\
    dpssysops.h\
    dpswinops.h\
    dpsXops.h\
    dpsl2ops.h

PSOPSHEADERFILES = \
    psclrops.h\
    psctrlops.h\
    psctxtops.h\
    psdataops.h\
    psfontops.h\
    psgsttops.h\
    psioops.h\
    psmathops.h\
    psmtrxops.h\
    psmiscops.h\
    pspntops.h\
    pspathops.h\
    pssysops.h\
    pswinops.h\
    psopstack.h\
    psXops.h\
    psl2ops.h

DPSOPSCFILES = \
    dpsclrops.c\
    dpsctrlops.c\
    dpsctxtops.c\
    dpsdataops.c\
    dpsfontops.c\
    dpsgsttops.c\
    dpsioops.c\
    dpsmathops.c\
    dpsmtrxops.c\
    dpsmiscops.c\
    dpsopstack.c\
    dpspntops.c\
    dpspathops.c\
    dpssysops.c\
    dpswinops.c\
    dpsXops.c\
    dpsl2ops.c

PSOPSCFILES = \
    psclrops.c\
    psctrlops.c\
    psctxtops.c\
    psdataops.c\
    psfontops.c\
    psgsttops.c\
    psioops.c\
    psmathops.c\
    psmtrxops.c\
    psmiscops.c\
    pspntops.c\
    pspathops.c\
    pssysops.c\
    pswinops.c\
    psopstack.c\
    psXops.c\
    psl2ops.c

/*
 * hv: HEADERS must be here, otherwise IncSubdir-triggered BuildIncludes
 * will fail on systems without ln cmd
 */
HEADERS = psops.h dpsops.h

all:: $(HEADERS)

includes:: $(DPSOPSCFILES) $(PSOPSCFILES) $(HEADERS)

$(DPSOPSCFILES) $(PSOPSCFILES): HostProgramTargetName($(PSWRAP))

SRCS = \
	${COMMONSOURCEFILES} \
	${XSOURCEFILES} \
	${XCSDPSSOURCEFILES} \
	${DPSOPSCFILES} \
	${PSOPSCFILES}

OBJS = \
	${COMMONOBJECTFILES} \
	${XOBJECTFILES} \
	${XCSDPSOBJECTFILES} \
	${DPSOPSOBJECTS} \
	${PSOPSOBJECTS}

DERIVED_FILES = $(DPSOPSHEADERFILES) $(PSOPSHEADERFILES) \
		$(DPSOPSCFILES) $(PSOPSCFILES)

#include <Library.tmpl>

.SUFFIXES: .psw .h

.psw.c : HostProgramTargetName($(PSWRAP))
	RunProgram(PSWRAP,-a -o $*.c -h $*.h $<)

.psw.h : HostProgramTargetName($(PSWRAP))
	RunProgram(PSWRAP,-a -h $*.h $< > /dev/null)

HostProgramTargetName($(PSWRAP)):
	@echo "checking $@ over in $(PSWRAPSRC) first..."; \
	cd $(PSWRAPSRC) && $(MAKE) pswraponly; \
	echo "okay, continuing in $(CURRENT_DIR)"

includes :: $(HEADERS)
depend :: $(DPSOPSCFILES) $(PSOPSCFILES)

psops.h : $(PSOPSHEADERFILES)
	RemoveFile($@)
	${CAT} $(PSOPSHEADERFILES) |\
	    ${SED} -e '/^$$/D' -e '/#/D' -e '/^\//D'\
		-e '/^   gener/D' -e '/^.\//D' |\
	    ${SORT} > .sort
	${AWK} '/;/ {print; printf("\n");}' .sort > .ttt
	${CAT} psname.txt header.txt psifdef.txt .ttt psendif.txt > psops.h
	RemoveFiles(.sort .ttt .attt)

dpsops.h : psops.h $(DPSOPSHEADERFILES)
	RemoveFile($@)
	${CAT} $(DPSOPSHEADERFILES) |\
	    ${SED} -e '/^$$/D' -e '/#/D' -e '/^\//D'\
		-e '/^   gener/D' -e '/^.\//D' |\
	    ${SORT} > .sort
	${AWK} '/;/ {print; printf("\n");}' .sort > .ttt
	${CAT} dpsname.txt header.txt dpsifdef.txt .ttt dpsendif.txt > dpsops.h
	RemoveFiles(.sort .ttt .attt)

clean ::
	${RM} $(DERIVED_FILES) .sort .ttt .att psops.h dpsops.h *%

DependTarget()