Building the DLL Containing the Resource

Next, you must build the DLL containing the resource. A DLL is generated that will be used in Updating the SPI.INI File to update the SPI.INI profile. The DLL is built by entering the following command:

NMAKE /F MAKERES.MAK

The following example shows a sample makefile (MAKERES.MAK), which is used to build the TESTRES.DLL containing the resource shown in the previous example. (See Creating a Resource File.)

.SUFFIXES: .com .sys .exe .obj .mbj .asm .inc .def .lrf .crf .ref \
           .lst .sym .map .c .h .lib .msg .pro .txt .cod .cvk
RCDLL=testres
/*******************************/
/* Compiler and Tools location */
/*******************************/
MSRC     =..
TOOLS    =..\..\TOOLS
SHIP_LIB =..\..\SHIP_LIB
SHIP_H   =..\SHIP_H
SHIP_INC =..\SHIP_INC
COMMON   =..\COMMON
INC      =..\..\SRC\INC
H        =..\..\SRC\H
H386     =..\..\SRC\H386
LIB      =..\..\SRC\LIB
LIB386   =..\..\SRC\LIB386

/******************************/
/* Definitions for C Compiler */
/******************************/
CCOMP386=cl386
CFLAGS386= /c /G3 /AS /W3 /Od /DLINT_ARGS
CINC386=-I. -I$(SHIP_H) -I$(COMMON) -I$(H386) -I$(H386)\SYS -I$(H) -I$(H)\SYS

/******************************/
/* Definitions for linker     */
/******************************/
LINK386  =link386
LFLAGS386= $(LNK_DEBUG) /batch /map /nod /noi /packcode /packdata
LIBS386  =$(NAMELIB) os2386 libc doscalls

/*************************************/
/* Definitions for RESOURCE compiler */
/*************************************/
RC       = rc
RCINC    = -i $(H) -i $(SHIP_H) -i $(COMMON)

/**************************/
/*  Object file lists     */
/**************************/

RCOBJS   =$(COMMON)\rcstub.obj

/*************************************/
/* Inference Rules                   */
/*************************************/
.c.obj:
        $(CCOMP386) $(CFLAGS386) $(CINC386) /Fo$(<R).obj $(C_LST) $(<R).c

/*************************************/
/* Target Descriptions               */
/*************************************/
!include        "$(H)\common.mak"

all: rc

/*************************************/
/* SSMRES.DLL Target Descriptions    */
/*************************************/
rc: $(RCDLL).dll

$(RCDLL).dll:  $(RCOBJS) $(RCDLL).rc makeres.mak $(RCDLL).lrf  \
               $(RCDLL).def
        $(LINK386) $(LFLAGS386) @$(RCDLL).lrf
        $(RC) $(RCINC) $(RCDLL).rc $(RCDLL).dll
#
# Make DEF file
#
$(RCDLL).def:  makeres.mak
        @echo Creating file <<$(@B).def
LIBRARY $(RCDLL)
DESCRIPTION 'DLL file containing resources'
STUB 'OS2STUB.EXE'
DATA NONE
<<keep

#
# Make link response file
#
$(RCDLL).lrf: makeres.mak
        @echo Creating file <<$(@B).lrf
$(RCOBJS)
$(RCDLL).dll
$(RCDLL).map $(LFLAGS386)
os2386 libcdll
$(RCDLL).def;
<<keep


[Back: Creating a Resource File]
[Next: Updating the SPI.INI File]