Makefile for FWH64 and Visual Studio 2012 with multiple PRGs

Makefile for FWH64 and Visual Studio 2012 with multiple PRGs

Postby Antonio Linares » Wed May 28, 2014 5:38 pm

Here you have a working example for a makefile using FWH 64 bits and harbour 64 bits and Visual Studio 2012:

go.bat
Code: Select all  Expand view
@set oldpath=%path%
@set oldinclude=%include%
@set oldlib=%lib%
@set oldlibpath=%libpath%
if exist "%ProgramFiles%\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64
c:\"Program Files (x86)\Microsoft Visual Studio 11.0"\VC\bin\nmake -ftest.mak
@set path=%oldpath%
@set include=%oldinclude%
@set lib=%oldlib%
@set libpath=%oldlibpath%
@set oldpath=""
@set oldinclude=""
@set oldlib=
@set oldlibpath=
if errorlevel==0 one.exe


test.mak
Code: Select all  Expand view
#Microsoft VS2012 make sample, (c) FiveTech Software 2014

HBDIR=c:\harbour
FWDIR=c:\fwteam
VCDIR="c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC"
SDKDIR="c:\Program Files (x86)\Windows Kits\7.1A"

.SUFFIXES: .prg .c .obj .rc .res

one.exe : one.obj two.obj three.obj one.res
   echo one.obj two.obj three.obj > msvc.tmp

   echo $(FWDIR)\lib\FiveH64.lib $(FWDIR)\lib\FiveHC64.lib >> msvc.tmp

   echo $(HBDIR)\lib\vc64\hbrtl.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbvm.lib     >> msvc.tmp
   echo $(HBDIR)\lib\vc64\gtgui.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hblang.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbmacro.lib  >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbrdd.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\rddntx.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\rddcdx.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\rddfpt.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbsix.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbdebug.lib  >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbcommon.lib >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbpp.lib     >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbwin.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbcplr.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\xhb.lib      >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbpcre.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbct.lib     >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbcpage.lib  >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbzlib.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\png.lib      >> msvc.tmp

   echo kernel32.lib  >> msvc.tmp
   echo user32.lib    >> msvc.tmp
   echo gdi32.lib     >> msvc.tmp
   echo winspool.lib  >> msvc.tmp
   echo comctl32.lib  >> msvc.tmp
   echo comdlg32.lib  >> msvc.tmp
   echo advapi32.lib  >> msvc.tmp
   echo shell32.lib   >> msvc.tmp
   echo ole32.lib     >> msvc.tmp
   echo oleaut32.lib  >> msvc.tmp
   echo uuid.lib      >> msvc.tmp
   echo odbc32.lib    >> msvc.tmp
   echo odbccp32.lib  >> msvc.tmp
   echo iphlpapi.lib  >> msvc.tmp
   echo mpr.lib       >> msvc.tmp
   echo version.lib   >> msvc.tmp
   echo wsock32.lib   >> msvc.tmp
   echo msimg32.lib   >> msvc.tmp
   echo oledlg.lib    >> msvc.tmp
   echo psapi.lib     >> msvc.tmp
   echo gdiplus.lib   >> msvc.tmp
   echo winmm.lib     >> msvc.tmp

   IF EXIST one.res echo one.res >> msvc.tmp

   link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc > link.log
   @type link.log
   @del one.c
   @del two.c
   @del three.c
   @del msvc.tmp

one.obj   : one.c
two.obj   : two.c
three.obj : three.c

one.c   : one.prg
two.c   : two.prg
three.c : three.prg

one.res : one.rc
   c:\vc98\bin\rc.exe -r -d__FLAT__ one.rc

.prg.c:
   $(HBDIR)\bin\harbour $< /n /i$(FWDIR)\include;$(HBDIR)\include

.c.obj:
   cl.exe -c -TC -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include $<
 


one.prg
Code: Select all  Expand view
#include "FiveWin.ch"

//-----------------------------------------------------------------//

function Main()

   Two()
   
   Three()

return nil

//-----------------------------------------------------------------//


two.prg
Code: Select all  Expand view
#include "FiveWin.ch"

function Two()

   local oWnd

   DEFINE WINDOW oWnd TITLE "FWH64 and Harbour 64 bits for Microsoft Visual Studio 2012"

   ACTIVATE WINDOW oWnd

return nil


three.prg
Code: Select all  Expand view
function Three()

   MsgInfo( "three.prg also linked" )

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41922
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Makefile for FWH64 and Visual Studio 2012 with multiple PRGs

Postby Antonio Linares » Wed May 28, 2014 5:54 pm

As google code cancelled the upload of files to share, then we migrate to bitbucket :-)

Here you have the file with the makefile to download it:
https://bitbucket.org/fivetech/fivewin-contributions/downloads/vs2012_make.zip
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41922
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: nageswaragunupudi and 25 guests