Page 1 of 1

WG 3.3 Wont compile

Posted: Mon Aug 28, 2006 8:04 pm
by The Storm
Ok, one month in and still WG 3.3 will not compile. NO errors are generated yet nothing happens. Anyway to just get the damn libraries like a regular dev environment?

Re: WG 3.3 Wont compile

Posted: Mon Aug 28, 2006 9:43 pm
by Questman
The Storm wrote:Ok, one month in and still WG 3.3 will not compile. NO errors are generated yet nothing happens. Anyway to just get the damn libraries like a regular dev environment?
I'm sorry - help me understand what you're doing, trying to do, and what is happening.

Re: WG 3.3 Wont compile

Posted: Tue Aug 29, 2006 12:53 am
by The Storm
Questman wrote:
The Storm wrote:Ok, one month in and still WG 3.3 will not compile. NO errors are generated yet nothing happens. Anyway to just get the damn libraries like a regular dev environment?
I'm sorry - help me understand what you're doing, trying to do, and what is happening.
Easy, we're just trying to get WG 3.3 to compile. Doing make doesn't do a thing. Using the IDE to compile doesn't do it either. Using the instructions in Netvillage.doc doesn't work as the changes they say to make in the make file don't exist.

Why can't the libraries just be distributed rather than the whole source? All we want to do is make modules and not actually change WG.

Posted: Tue Aug 29, 2006 2:22 am
by Questman
That's kind of what I'm saying. You don't really need more than the libraries that are provided with the WG binaries and the WG dev kit.. you could easily setup your own environment.

When I compile, I open a new command prompt and then run my "wg32" batch file which contains:

Code: Select all

@echo off
SET CONFIG=WG3DEV
SET WGDEV=C:\WGDEV
SET BC50=C:\BC5
SET COMPILER=C:\BC5
SET DOSEXT=C:\RUN286
SET WGDOS=C:\WGSERVD
SET WGNT=C:\WGSERV
SET BUDOS=
SET VB3=C:\VB
SET LIB=C:\WGDEV\INC;C:\WGDEV\ENTSRC;C:\RUN286\BC5\LIB;C:\BC5\LIB
SET CMP=BC50-32
SET OS=WNT
SET WGPATH=C:\WINDOWS;C:\BC5\BIN;C:\;C:\RUN286\BIN;C:\WGDEV\BIN;C:\TASM\BIN;C:\WINDOWS\SYSTEM;c:\WINDOWS\SYSTEM32
SET PATH=C:\WINDOWS;C:\BC5\BIN;C:\;C:\RUN286\BIN;C:\WGDEV\BIN;C:\TASM\BIN;C:\WINDOWS\SYSTEM;c:\WINDOWS\SYSTEM32;\WGDEV\WGTOOLS\BTRIEVE;\PROGRA~1\IDMCOM~1\ULTRAE~1;
My structure is:

Borland C 5.01: C:\BC5
Worldgroup: C:\WGSERV
Worldgroup Dev: C:\WGDEV

An example of my Makefile:

Code: Select all

###############################################################################
#####                 This makefile generates ELWBIO.DLL                  #####
###############################################################################
!include $(WGDEV)\src\gcrules.mak

DEFILE =

VIRFILES =

!if $(OS) == WNT
DLLLIB = $(DLLLIB) wgserver.lib galgsbl.lib
MATHDLL =
DEFILE =
!endif

!if $(OS) == WG2
DLLLIB = $(DLLLIB) wgserver.lib galgsbl.lib $(BORLAND)\lib\mathh.lib ${DOSEXT}\b
c4\lib\phapi.lib
MATHDLL = $(DOSEXT)\bc4\lib\fpdmy
DEFILE = $(WGLIBDIR)\mathdef.def
!endif

OBJFILES = \
     ${TEMPDIR}\elwbio.obj

start:              \
     $(GCBUILD)     \
     elwbio.dll

elwbio.dll:         \
     $(OBJFILES)    \
     $(DLLLIB)      \
     $(DEFILE)      \
     $(VIRFILES)
     $(LINK) $(LIBCMD) @&&|
$(PRODLL) ${MATHDLL} $(OBJFILES)
$(RUNDIR)\$&
$(RUNDIR)\$&
$(DLLLIB) $(LINKDLL)
$(DEFILE)
|
I use MKV2P ELWBIO to compile it for WG2DOS, and MKNT ELWBIO to compile it for WG3NT.

The same source tree will compile both WG3NT and WG2DOS.

The main key is to set up your environment.

Here is my C:\WGDEV\SRC\GCRULES.MAK:

Code: Select all


############################################################################
## General Rules for Building Worldgroup Files                            ##
############################################################################
.autodepend
.silent
!if $d(NOSILENT)
.nosilent
!endif

############################################################################
## Check for OS and CMP variables                                         ##
############################################################################
!if !$d(OS)
!    error OS environment variable not set!
!endif
!if !$d(CMP)
!    error CMP environment variable not set!
!endif

!if $(OS) == DOS && !$d(BUDOS)
!    message You are not set up to properly build VIR files.
!    message Check your documentation if you would like to build VIR files
!    message from your make files.
     NOVIRS= 
!endif

############################################################################
## Operating system include                                               ##
############################################################################
TEMPDIR   = .\GCBUILD
VIRDIR    = $(TEMPDIR)
RUNDIR    = .
WGSRCDIR  = $(WGDEV)\SRC
WGLIBDIR  = $(WGDEV)\LIB
TOOLDIR   = $(WGDEV)\BIN
MAKDIR    = $(WGSRCDIR)

!if !$d(NUMERRS)
     NUMERRS = 10
!endif

!include $(MAKDIR)\$(OS).MAK

############################################################################
##  Directories, defined by environment variables                         ##
############################################################################
DLIBDIR   = $(TEMPDIR)
OBJDIR    = $(TEMPDIR)
MSGDIR    = .
MSGHDIR   = $(TEMPDIR)
BCRDIR    = .
INCDIR    = $(WGDEV)\INC
STDINC    = $(INCDIR);$(MSGHDIR);$(OSINCDIR);${WGSRCDIR};${MOREINCS}

############################################################################
## Search paths                                                           ##
############################################################################
.path.h =   $(STDINC)
.path.lib = $(TEMPDIR);$(WGLIBDIR)
.path.def = $(TEMPDIR);$(WGLIBDIR)
.path.obj = $(OBJDIR)
.path.exe = $(RUNDIR)
.path.msg = $(TEMPDIR)
.path.dll = $(RUNDIR)
.path.vir = $(VIRDIR)
.path.bcr = $(TEMPDIR)
.path.cfg = $(TOOLDIR)
.path.mak = $(MAKDIR)
.path.dum = $(TOOLDIR)
.path.res = $(TEMPDIR)
.path.rc  = .;$(TEMPDIR)
.path.c   = .;$(TEMPDIR)                     # For screen files            #

###############################################################################
#####          Set up parse files                                         #####
###############################################################################
PARSEFILES =             \
     $(PARSEFILES)       \
     *.msg               \
     *.bcr               \
     *.dmd               \
     *.mdf               \
     *.htm               \
     *.cvt               \
     *.def

MDFFILES =               \
     $(TEMPDIR)\*.dmd    \
     $(TEMPDIR)\*.mdf

HTMLFILES =              \
     $(TEMPDIR)\*.htm

CVTFILES =               \
     $(TEMPDIR)\*.cvt

CVTFILDIR = $(RUNDIR)\wgsdfcvt

HTMLDIR = $(RUNDIR)\webpages


GIFFILES = *.gif
GIFDIR = $(RUNDIR)\webpages\images

JPGFILES = *.jpg

BINFILES = *.bin
BINDIR = $(RUNDIR)

###############################################################################
#####          Compile/Assemble/Link based on OS, MODEL, and DEBUG        #####
###############################################################################
!include $(MAKDIR)\$(CMP).MAK

!if !$d(COMPILER)
!    error "COMPILER environment variable not defined!"
!endif

###############################################################################
#####          For source debugging...                                    #####
###############################################################################
!if $d(SRCDBG)
     PARSEOPTS = $(PARSEOPTS) -DSRCDBG
     CC = $(CC) -v -y
!    if $(OS) == DOS || $(OS) == WG2
          LINK = $(LINK) /v /l
!    else
          LINK = $(LINK) /v
!    endif

!endif

###############################################################################
#####          For special server versions...                             #####
###############################################################################
!if !$d(TIMESTAMP)
     TIMESTAMP = 03:10:00          # Current server version                
!    if $d(WEBCAST)
          TIMESTAMP = 02:00:00     # Current webcast version number        
!    endif
!    if $d(ACTIBASE)
          TIMESTAMP = 01:00:00     # Current ActiBase server version       
!    endif
!endif

#!if !$d(DATESTAMP)
#     DATESTAMP = 01/01/97          # Date of current builds                #
#!    if $d(WEBCAST)
#          DATESTAMP = 01/01/97     # Current webcast date                  #
#!    endif
#!endif

!if $d(WEBCAST)
     PARSEOPTS = $(PARSEOPTS) -DWEBCAST
!elif $d(ACTIBASE)
     PARSEOPTS = $(PARSEOPTS) -DACTIBASE
!else
     PARSEOPTS = $(PARSEOPTS) -DWORLDGROUP
     WORLDGROUP =
!endif
!if $d(GCV30)
     PARSEOPTS = $(PARSEOPTS) -DGCV30
!endif

###############################################################################
#####          For Code Guard debugging...                                #####
###############################################################################
!if $d(CGDBG)
!    if $(OS) == WNT
          CC = $(CC) -v -vG
          LINK = $(LINK) /v
          DLLLIB = $(COMPILER)\lib\cg32.lib $(DLLLIB)
          EXELIB = $(COMPILER)\lib\cg32.lib $(EXELIB)
          STATLIB = $(COMPILER)\lib\cg32.lib $(STATLIB)
!    endif
!endif

###############################################################################
#####          For "mangled" c++ symbols in MAP file                      #####
###############################################################################
!if $d(MANGLE)
     LINK = $(LINK) /Gm
!endif

###############################################################################
#####          For generating ASM output for compiles                     #####
###############################################################################
!if $d(GENASM)
     CC = $(CC) -S
!endif

###############################################################################
#####          For generating STARTER version of certain files            #####
###############################################################################
!if $d(STARTER)
     CC = $(CC) -DSTARTER
!endif

###############################################################################
#####          Miscellaneous useful macro definitions                     #####
###############################################################################
SCNBGN = copy /a $(WGSRCDIR)\scnbgn.c $(TEMPDIR)\$&.c > nul
SCNMAK = &add2c $** $(TEMPDIR)\makescns.$$t $(TEMPDIR)\$&.c > nul
SCNEND = copy /a $(TEMPDIR)\$&.c + $(WGSRCDIR)\scnend.c $(TEMPDIR)\$&.c> nul

!ifdef DEBUG
     DONEMSG = Build Complete! (DEBUG Version)
!else
     DONEMSG = Build Complete!
!endif

###############################################################################
#####               Generates the compiler option file                    #####
###############################################################################
!if $d(DEBUG)
     PARSEOPTS = $(PARSEOPTS) -DDEBUG
!    if $(OS) == DOS || $(OS) == WG2
!         if $(MODEL) == LARGE
               PARSEOPTS = $(PARSEOPTS) -N
!         endif
!    endif
!endif

GCBUILD = tmpbld.bld

###############################################################################
#####          Implicit Rule Definitions                                  #####
###############################################################################
.dum.bld:
#Rename old build file
     if exist $(TEMPDIR)\$&.bld rename $(TEMPDIR)\$&.bld $&.old
#Create current temp build file in another directory
# just in case $(TEMPDIR) does not exist yet
     type &&|
          $(PARSEOPTS)
| > $(TOOLDIR)\tmp.bld
#Sync everything up, delete directory if needed
     galsync $(TOOLDIR)\tmp.bld $(TEMPDIR)\$&.old $(TEMPDIR) -Q
     del $(TOOLDIR)\tmp.bld
#Parse all needed files
     galparsf &&|
          $(PARSEOPTS)
          $(PARSEFILES)
|    $(TEMPDIR) -Q
#save current build options
     type &&|
          $(PARSEOPTS)
| > $(TEMPDIR)\$&.bld
     if exist $(TEMPDIR)\$&.old del $(TEMPDIR)\$&.old
     if exist *.obj galcopy *.obj $(TEMPDIR) -Q
!if $d(BUILD)
     galmkdir $(RUNDIR)
     galparsf &&|
          $(PARSEOPTS)
          $(MDFFILES)
|    $(RUNDIR) -Q -B
     galmkdir $(HTMLDIR)
     galparsf &&|
          $(PARSEOPTS)
          $(HTMLFILES)
|    $(HTMLDIR) -Q -B
     galmkdir $(CVTFILDIR)
     galparsf &&|
          $(PARSEOPTS)
          $(CVTFILES)
|    $(CVTFILDIR) -Q -B
     galmkdir $(GIFDIR)
     galmkdir $(BINDIR)
     galcopy $(GIFFILES) $(GIFDIR) -Q
     galcopy $(JPGFILES) $(GIFDIR) -Q
     galcopy $(BINFILES) $(BINDIR) -Q
!endif

.c.obj:
     $(CC) @&&|
          $(PARSEOPTS)
          $(INCCMD)
          $(INCCMD1)
          $(OBJCMD)
          $(CFIG)
| $<

.cpp.obj&#58;
     $&#40;CC&#41; @&&|
          $&#40;PARSEOPTS&#41;
          $&#40;INCCMD&#41;
          $&#40;INCCMD1&#41;
          $&#40;OBJCMD&#41;
          $&#40;CFIG&#41;
| $<

.c.lst&#58;
     $&#40;CC&#41; -S @&&|
          $&#40;PARSEOPTS&#41;
          $&#40;INCCMD&#41;
          $&#40;INCCMD1&#41;
          $&#40;OBJCMD&#41;
          $&#40;CFIG&#41;
| $<
     tasmx /kh10000 $&#40;TEMPDIR&#41;\$&,nul,$&#40;TEMPDIR&#41;\$&
     del $*.asm

.cpp.lst&#58;
     $&#40;CC&#41; -S @&&|
          $&#40;PARSEOPTS&#41;
          $&#40;INCCMD&#41;
          $&#40;INCCMD1&#41;
          $&#40;OBJCMD&#41;
          $&#40;CFIG&#41;
| $<
     tasmx /kh10000 $&#40;TEMPDIR&#41;\$&,nul,$&#40;TEMPDIR&#41;\$&
     del $*.asm

.def.lib&#58;
     galparse @&&|
          $<
          $&#40;TEMPDIR&#41;\$&.def
          -Q
          $&#40;PARSEOPTS&#41;
|
     $&#40;IMPLIB&#41; $&#40;TEMPDIR&#41;\$& $&#40;TEMPDIR&#41;\$&.def
     del $&#40;TEMPDIR&#41;\$&.def >nul

.msg.h&#58;
     $&#40;TOOLDIR&#41;\galmerge $&#40;MSGHDIR&#41;\$&.msg $&#40;RUNDIR&#41;\$&.msg -Q
     $&#40;TOOLDIR&#41;\wgsmsx $&#40;MSGHDIR&#41;\$&.msg nul $&#40;MSGHDIR&#41;\$&.h

.bcr.vir&#58;
     galmkdir $&#40;VIRDIR&#41;
!if !$d&#40;NOVIRS&#41;
!if "$&#40;VIRSTART&#41;" != ""
     $&#40;VIRSTART&#41;
!endif
     $&#40;VIRPRO&#41; $@ $&#40;TEMPDIR&#41;\$&.bcr
     if exist $&.$&#40;VIRFILLEX&#41; $&#40;VIRFILL&#41; $&.$&#40;VIRFILLEX&#41; $@
!if "$&#40;VIRSTOP&#41;" != ""
     $&#40;VIRSTOP&#41;
!endif
!endif

.rc.res&#58;
     $&#40;COMPILER&#41;\bin\brc32 $&#40;PARSEOPTS&#41; -r -fo $&#40;TEMPDIR&#41;\$&.res $<

.mc.rc&#58;
     $&#40;COMPILER&#41;\sdktools\mc -v $*.mc
     if exist $&#40;TEMPDIR&#41;\$&.rc del $&#40;TEMPDIR&#41;\$&.rc
     move $&.rc $&#40;TEMPDIR&#41;

I hope this helps.

Posted: Tue Aug 29, 2006 2:36 am
by The Storm
Questman wrote:That's kind of what I'm saying. You don't really need more than the libraries that are provided with the WG binaries and the WG dev kit.. you could easily setup your own environment.

When I compile, I open a new command prompt and then run my "wg32" batch file which contains:

Code: Select all

@echo off
SET CONFIG=WG3DEV
SET WGDEV=C&#58;\WGDEV
SET BC50=C&#58;\BC5
SET COMPILER=C&#58;\BC5
SET DOSEXT=C&#58;\RUN286
SET WGDOS=C&#58;\WGSERVD
SET WGNT=C&#58;\WGSERV
SET BUDOS=
SET VB3=C&#58;\VB
SET LIB=C&#58;\WGDEV\INC;C&#58;\WGDEV\ENTSRC;C&#58;\RUN286\BC5\LIB;C&#58;\BC5\LIB
SET CMP=BC50-32
SET OS=WNT
SET WGPATH=C&#58;\WINDOWS;C&#58;\BC5\BIN;C&#58;\;C&#58;\RUN286\BIN;C&#58;\WGDEV\BIN;C&#58;\TASM\BIN;C&#58;\WINDOWS\SYSTEM;c&#58;\WINDOWS\SYSTEM32
SET PATH=C&#58;\WINDOWS;C&#58;\BC5\BIN;C&#58;\;C&#58;\RUN286\BIN;C&#58;\WGDEV\BIN;C&#58;\TASM\BIN;C&#58;\WINDOWS\SYSTEM;c&#58;\WINDOWS\SYSTEM32;\WGDEV\WGTOOLS\BTRIEVE;\PROGRA~1\IDMCOM~1\ULTRAE~1;
And what OS are you using to do this with?

Posted: Tue Aug 29, 2006 3:32 am
by Questman
Windows XP Pro.

Same configuration moved from a Windows 2000 Pro laptop, though, so it works in both.

Also works on Server 2003.

Posted: Tue Aug 29, 2006 4:05 am
by The Storm
Questman wrote:Windows XP Pro.

Same configuration moved from a Windows 2000 Pro laptop, though, so it works in both.

Also works on Server 2003.
Ok, so let me see if I have this right. I DONT need to compile WG 3.3 to make my modules? Just have the sources and the SDK?

Re: WG 3.3 Wont compile

Posted: Tue Aug 29, 2006 4:53 am
by dspain
The Storm wrote:
Questman wrote:
The Storm wrote:Ok, one month in and still WG 3.3 will not compile. NO errors are generated yet nothing happens. Anyway to just get the damn libraries like a regular dev environment?
I'm sorry - help me understand what you're doing, trying to do, and what is happening.
Easy, we're just trying to get WG 3.3 to compile. Doing make doesn't do a thing. Using the IDE to compile doesn't do it either. Using the instructions in Netvillage.doc doesn't work as the changes they say to make in the make file don't exist.

Why can't the libraries just be distributed rather than the whole source? All we want to do is make modules and not actually change WG.
check your email on my server that will compile wg 3.3 from scratch in 5 mins

Posted: Tue Aug 29, 2006 4:17 pm
by Questman
The Storm wrote:
Questman wrote:Windows XP Pro.

Same configuration moved from a Windows 2000 Pro laptop, though, so it works in both.

Also works on Server 2003.
Ok, so let me see if I have this right. I DONT need to compile WG 3.3 to make my modules? Just have the sources and the SDK?
Correct. The LIBs and object components are already included in the kit. You just need to compile your modules.

I put my module code in subdirectories under C:\WGDEV\SRC\APPS\

Re: WG 3.3 Wont compile

Posted: Tue Aug 29, 2006 4:18 pm
by Questman
dspain wrote:check your email on my server that will compile wg 3.3 from scratch in 5 mins
Yeah, but he doesn't WANT to compile WG, he wants to compile modules.

Re: WG 3.3 Wont compile

Posted: Tue Aug 29, 2006 6:25 pm
by dspain
Questman wrote:
dspain wrote:check your email on my server that will compile wg 3.3 from scratch in 5 mins
Yeah, but he doesn't WANT to compile WG, he wants to compile modules.
in the email he sent me on my server he said he couldnt get 3.3 to compile.

Re: WG 3.3 Wont compile

Posted: Wed Aug 30, 2006 12:50 am
by The Storm
Questman wrote:
dspain wrote:check your email on my server that will compile wg 3.3 from scratch in 5 mins
Yeah, but he doesn't WANT to compile WG, he wants to compile modules.
You are correct but I did email him due to me believing that I had to compile WG first. I thought it odd as others told me this is what had to happen in order to get my mods to work.

Re: WG 3.3 Wont compile

Posted: Wed Aug 30, 2006 12:53 am
by dspain
The Storm wrote:
Questman wrote:
dspain wrote:check your email on my server that will compile wg 3.3 from scratch in 5 mins
Yeah, but he doesn't WANT to compile WG, he wants to compile modules.
You are correct but I did email him due to me believing that I had to compile WG first. I thought it odd as others told me this is what had to happen in order to get my mods to work.
im actually working on something for ya storm.
where basically its a wgsdk only the required files and borland stuff.

eliminates the need for the complete borland and wg stuff.

Re: WG 3.3 Wont compile

Posted: Wed Aug 30, 2006 1:00 am
by The Storm
dspain wrote:
The Storm wrote:
Questman wrote: Yeah, but he doesn't WANT to compile WG, he wants to compile modules.
You are correct but I did email him due to me believing that I had to compile WG first. I thought it odd as others told me this is what had to happen in order to get my mods to work.
im actually working on something for ya storm.
where basically its a wgsdk only the required files and borland stuff.

eliminates the need for the complete borland and wg stuff.
Awesome, we really could use that as we're behind a little bit in this project.

Re: WG 3.3 Wont compile

Posted: Wed Aug 30, 2006 2:33 am
by dspain
The Storm wrote:
dspain wrote:
The Storm wrote: You are correct but I did email him due to me believing that I had to compile WG first. I thought it odd as others told me this is what had to happen in order to get my mods to work.
im actually working on something for ya storm.
where basically its a wgsdk only the required files and borland stuff.

eliminates the need for the complete borland and wg stuff.
Awesome, we really could use that as we're behind a little bit in this project.
yeah i did that years ago when i first started compiling my own tele-arena for dos i was moving stuff around so much and pc to pc was easier to make my own dev-kit

in the end i had something so much smaller than the original dev-kit

Posted: Thu Aug 31, 2006 2:19 am
by Questman
Right.. but.. you don't need it. You don't need to compile anything to compile your modules!

Posted: Thu Sep 07, 2006 3:04 am
by The Storm
Questman wrote:Right.. but.. you don't need it. You don't need to compile anything to compile your modules!
I know this now. :D