FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Build.bat for MSVC 2015
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Build.bat for MSVC 2015
Posted: Mon Apr 04, 2016 09:32 PM
I have successfully been able to use the MSVC 2015 ( Community ) IDE to build both 32 bit and 64 bit versions of my application ( with nearly 100 .prg files ).

Prior to 16.03, I had no problem with UE Studio building a Harbour / MSVC 2013 / FWH app ( up to 16.02 ). However, with VS / VC 2015, Microsoft made some definite changes and I am apparently not finding the right libraries. I've tried a lot of options, but no go.

So, the easiest thing would be for me to create 2 Build.bat files that work with multiple .prg files, and a .rc file. Build64.bat works fine for 1 file with no resources, but I need to do the whole application.

Can someone post a sample build32 and build64 batch files that handle multiple .prg files, and an .rc file ? It needs to be specific to MSVC 2015 ( Community ), Harbour, and FWH 16.03.

Thank you. From that I can create what I need.

For those who wonder why not use the IDE builds ? I have one issue for sure, and that has to do with checkboxes and radio buttons. When there are multiple of these in a dialog, if I check on one, the text for it ( and other entries ) disappears. It's funny, but my build from .mak files ( which is what UE Studio created but not successfully for 2015 ) do not have that problem, so apparently the IDE is bringing in a .lib that has an issue ....

Tim
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Build.bat for MSVC 2015
Posted: Mon Apr 04, 2016 09:43 PM

Tim,

To build an app using nearly 100 prgs you should use a batch and a makefile as explained here:

viewtopic.php?p=162896#p162896

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Re: Build.bat for MSVC 2015
Posted: Wed Apr 06, 2016 07:30 PM
Here is the .mak file, but I get the error mak(27) : fatal error U1034: syntax error : separator missing

Line 27 references mServiceHistory.prg

Code (fw): Select all Collapse
#Microsoft VS2015 make sample, (c) FiveTech Software 2014

HBDIR=c:\harbour
FWDIR=c:\fwh64
VCDIR="c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"
SDKDIR="c:\Program Files (x86)\Windows Kits\8.1"
hdirl=%HBDIR%\lib\vc64

PRGS =       \
c:\Projects\MLS2015\Source\TDATA.PRG \
c:\Projects\MLS2015\Source\emskey.prg \ 
c:\Projects\MLS2015\Source\TRecord.prg \
c:\Projects\MLS2015\Source\TSEARCH.PRG \
c:\Projects\MLS2015\Source\mInvPartsPicklist.PRG    \
c:\Projects\MLS2015\Source\mLaborGlossary.prg   \
c:\Projects\MLS2015\Source\mServiceKits.PRG \
c:\Projects\MLS2015\Source\RPTglossary.prg \
c:\Projects\MLS2015\Source\mLaborChart.prg  \
c:\Projects\MLS2015\Source\mWrkQuote.prg    \
c:\Projects\MLS2015\Source\MLSphonebook.prg \
c:\Projects\MLS2015\Source\mTimeclocks.prg  \
c:\Projects\MLS2015\Source\MLSnotebook.prg  \
c:\Projects\MLS2015\Source\MLSphotos.prg    \
c:\Projects\MLS2015\Source\MLSmessagecenter.prg \
c:\Projects\MLS2015\Source\mWorkClose.prg   \
c:\Projects\MLS2015\Source\mFileIndex.prg   \ 
c:\Projects\MLS2015\Source\mServiceHistory.prg \
c:\Projects\MLS2015\Source\G_GRAPH.PRG  \
c:\Projects\MLS2015\Source\G_SERVER.PRG \
c:\Projects\MLS2015\Source\QBCUST.PRG   \
c:\Projects\MLS2015\Source\mCustomer.prg    \
c:\Projects\MLS2015\Source\aswEmail.prg \
c:\Projects\MLS2015\Source\mClientFollowUp.prg \
c:\Projects\MLS2015\Source\mTextEditor.prg \
c:\Projects\MLS2015\Source\mClientUtilities.prg \
c:\Projects\MLS2015\Source\mPMscheduler.prg \
c:\Projects\MLS2015\Source\RPTclient.prg    \
c:\Projects\MLS2015\Source\MLScalendar.prg  \
c:\Projects\MLS2015\Source\mInvPurchaseOrder.prg \
c:\Projects\MLS2015\Source\mInvReturn.prg   \
c:\Projects\MLS2015\Source\mInvCore.PRG \
c:\Projects\MLS2015\Source\RPTinventory.prg \
c:\Projects\MLS2015\Source\mInvUtilities.prg    \
c:\Projects\MLS2015\Source\BldComp.PRG  \
c:\Projects\MLS2015\Source\emswab.prg   \
c:\Projects\MLS2015\Source\InspChk.PRG  \
c:\Projects\MLS2015\Source\MLSAutoFU.prg    \
c:\Projects\MLS2015\Source\MLSEditor.prg \
c:\Projects\MLS2015\Source\NumCnv.prg   \
c:\Projects\MLS2015\Source\StrucEdit.prg    \
c:\Projects\MLS2015\Source\rpreview.prg \
c:\Projects\MLS2015\Source\tCalc.prg    \
c:\Projects\MLS2015\Source\utillog.prg  \
c:\Projects\MLS2015\Source\ViewWOStatus.prg \
c:\Projects\MLS2015\Source\webmap.prg   \
c:\Projects\MLS2015\Source\woaudt.prg \
c:\Projects\MLS2015\Source\mWorkOrders.prg \
c:\Projects\MLS2015\Source\mWorkPrint.prg \
c:\Projects\MLS2015\Source\mARaccounts.PRG \
c:\Projects\MLS2015\Source\mARtransactions.PRG \
c:\Projects\MLS2015\Source\RPTreceivables.prg \
c:\Projects\MLS2015\Source\mARutilities.prg \
c:\Projects\MLS2015\Source\mAPaccounts.PRG \
c:\Projects\MLS2015\Source\mAPtransactions.PRG \
c:\Projects\MLS2015\Source\TDATA.PRG \
c:\Projects\MLS2015\Source\emskey.prg \
c:\Projects\MLS2015\Source\mls_func.prg \
c:\Projects\MLS2015\Source\MSGDATE.PRG \
c:\Projects\MLS2015\Source\PROSPELL.PRG \
c:\Projects\MLS2015\Source\TRecord.prg \
c:\Projects\MLS2015\Source\TSEARCH.PRG \
c:\Projects\MLS2015\Source\mInvPartsPicklist.PRG \
c:\Projects\MLS2015\Source\mLaborGlossary.prg \
c:\Projects\MLS2015\Source\mServiceKits.PRG \
c:\Projects\MLS2015\Source\RPTglossary.prg \
c:\Projects\MLS2015\Source\mLaborChart.prg \
c:\Projects\MLS2015\Source\mWrkQuote.prg \
c:\Projects\MLS2015\Source\MLSphonebook.prg \
c:\Projects\MLS2015\Source\mTimeclocks.prg \
c:\Projects\MLS2015\Source\MLSnotebook.prg \
c:\Projects\MLS2015\Source\MLSphotos.prg \
c:\Projects\MLS2015\Source\MLSmessagecenter.prg \
c:\Projects\MLS2015\Source\mWorkClose.prg \
c:\Projects\MLS2015\Source\mFileIndex.prg \
c:\Projects\MLS2015\Source\mServiceHistory.prg \
c:\Projects\MLS2015\Source\G_GRAPH.PRG \
c:\Projects\MLS2015\Source\G_SERVER.PRG \
c:\Projects\MLS2015\Source\QBCUST.PRG \
c:\Projects\MLS2015\Source\mCustomer.prg \
c:\Projects\MLS2015\Source\aswEmail.prg \
c:\Projects\MLS2015\Source\mClientFollowUp.prg \
c:\Projects\MLS2015\Source\mTextEditor.prg \
c:\Projects\MLS2015\Source\mClientUtilities.prg \
c:\Projects\MLS2015\Source\mPMscheduler.prg \
c:\Projects\MLS2015\Source\RPTclient.prg \
c:\Projects\MLS2015\Source\MLScalendar.prg \
c:\Projects\MLS2015\Source\mInvPurchaseOrder.prg \
c:\Projects\MLS2015\Source\mInvReturn.prg \
c:\Projects\MLS2015\Source\mInvCore.PRG \
c:\Projects\MLS2015\Source\RPTinventory.prg \
c:\Projects\MLS2015\Source\mInvUtilities.prg \
c:\Projects\MLS2015\Source\BldComp.PRG \
c:\Projects\MLS2015\Source\emswab.prg \
c:\Projects\MLS2015\Source\InspChk.PRG \
c:\Projects\MLS2015\Source\MLSAutoFU.prg \
c:\Projects\MLS2015\Source\MLSEditor.prg \
c:\Projects\MLS2015\Source\NumCnv.prg \
c:\Projects\MLS2015\Source\StrucEdit.prg \
c:\Projects\MLS2015\Source\rpreview.prg \
c:\Projects\MLS2015\Source\tCalc.prg \
c:\Projects\MLS2015\Source\utillog.prg \
c:\Projects\MLS2015\Source\ViewWOStatus.prg \
c:\Projects\MLS2015\Source\webmap.prg \
c:\Projects\MLS2015\Source\woaudt.prg \
c:\Projects\MLS2015\Source\mWorkOrders.prg \
c:\Projects\MLS2015\Source\mWorkPrint.prg \
c:\Projects\MLS2015\Source\mARaccounts.PRG \
c:\Projects\MLS2015\Source\mARtransactions.PRG \
c:\Projects\MLS2015\Source\RPTreceivables.prg \
c:\Projects\MLS2015\Source\mARutilities.prg \
c:\Projects\MLS2015\Source\mAPaccounts.PRG \
c:\Projects\MLS2015\Source\mAPtransactions.PRG \
c:\Projects\MLS2015\Source\mAPutilities.prg \
c:\Projects\MLS2015\Source\RPTpayables.prg \
c:\Projects\MLS2015\Source\mGLaccounts.PRG \
c:\Projects\MLS2015\Source\RPTledger.prg \
c:\Projects\MLS2015\Source\mPayroll.prg \
c:\Projects\MLS2015\Source\mPayrollProcessing.prg \
c:\Projects\MLS2015\Source\RPTpayroll.prg \
c:\Projects\MLS2015\Source\mPayrollUtilities.prg \
c:\Projects\MLS2015\Source\mBankAccount.prg \
c:\Projects\MLS2015\Source\RPTbank.prg \
c:\Projects\MLS2015\Source\mReports.prg \
c:\Projects\MLS2015\Source\RPTworkordersB.prg \
c:\Projects\MLS2015\Source\RPTworkorders.prg \
c:\Projects\MLS2015\Source\mASWgraphs.prg \
c:\Projects\MLS2015\Source\DemandForce.PRG \
c:\Projects\MLS2015\Source\VINDCD.PRG \
c:\Projects\MLS2015\Source\UtilCarFax.prg \
c:\Projects\MLS2015\Source\merchant.prg \
c:\Projects\MLS2015\Source\realtime.prg \
c:\Projects\MLS2015\Source\RReward.prg \
c:\Projects\MLS2015\Source\rprevfunc.prg \
c:\Projects\MLS2015\Source\mConfigSys.prg \
c:\Projects\MLS2015\Source\mListEditor.prg \
c:\Projects\MLS2015\Source\mInventory.prg \
c:\Projects\MLS2015\Source\mListArrays.PRG \
c:\Projects\MLS2015\Source\mWorkData.prg \
c:\Projects\MLS2015\Source\mWorkParts.prg \
c:\Projects\MLS2015\Source\mWorkLabor.prg \
c:\Projects\MLS2015\Source\mLookup.prg \
c:\Projects\MLS2015\Source\mWorkNeeds.prg \
c:\fwh\source\function\errsysw.prg \
c:\Projects\MLS2015\Source\mAPutilities.prg \
c:\Projects\MLS2015\Source\RPTpayables.prg \
c:\Projects\MLS2015\Source\mGLaccounts.PRG \
c:\Projects\MLS2015\Source\RPTledger.prg \
c:\Projects\MLS2015\Source\mPayroll.prg \
c:\Projects\MLS2015\Source\mPayrollProcessing.prg \
c:\Projects\MLS2015\Source\RPTpayroll.prg \
c:\Projects\MLS2015\Source\mPayrollUtilities.prg \
c:\Projects\MLS2015\Source\mBankAccount.prg \
c:\Projects\MLS2015\Source\RPTbank.prg \
c:\Projects\MLS2015\Source\mReports.prg \
c:\Projects\MLS2015\Source\RPTworkordersB.prg \
c:\Projects\MLS2015\Source\RPTworkorders.prg \
c:\Projects\MLS2015\Source\mASWgraphs.prg \
c:\Projects\MLS2015\Source\DemandForce.PRG \
c:\Projects\MLS2015\Source\VINDCD.PRG \
c:\Projects\MLS2015\Source\UtilCarFax.prg \
c:\Projects\MLS2015\Source\merchant.prg \
c:\Projects\MLS2015\Source\realtime.prg \
c:\Projects\MLS2015\Source\RReward.prg \
c:\Projects\MLS2015\Source\rprevfunc.prg \
c:\Projects\MLS2015\Source\mConfigSys.prg \
c:\Projects\MLS2015\Source\mListEditor.prg \
c:\Projects\MLS2015\Source\mInventory.prg \
c:\Projects\MLS2015\Source\mListArrays.PRG \
c:\Projects\MLS2015\Source\mWorkData.prg \
c:\Projects\MLS2015\Source\mWorkParts.prg \
c:\Projects\MLS2015\Source\mWorkLabor.prg \
c:\Projects\MLS2015\Source\mLookup.prg \
c:\Projects\MLS2015\Source\mWorkNeeds.prg \
c:\fwh\source\function\errsysw.prg \
c:\Projects\MLS2015\Source\Kukui.prg 
 
.SUFFIXES: .prg .c .obj .rc .res 

MyApp.exe : $(PRGS:.prg=.obj) MyApp.res
   echo $(PRGS:.prg=.obj) > msvc.tmp

   echo $(FWDIR)\lib\FiveH32.lib $(FWDIR)\lib\FiveHC32.lib >> msvc.tmp

echo %fwdir%\lib\FiveH64.lib %fwdir%\lib\FiveHC64.lib  >> msvc.tmp

echo %hdirl%\hbrtl.lib  >> msvc.tmp
echo %hdirl%\hbvm.lib  >> msvc.tmp
echo %hdirl%\gtgui.lib  >> msvc.tmp
echo %hdirl%\hblang.lib  >> msvc.tmp
echo %hdirl%\hbmacro.lib  >> msvc.tmp
echo %hdirl%\hbrdd.lib  >> msvc.tmp
echo %hdirl%\rddntx.lib  >> msvc.tmp
echo %hdirl%\rddcdx.lib  >> msvc.tmp
echo %hdirl%\rddfpt.lib  >> msvc.tmp
echo %hdirl%\hbsix.lib  >> msvc.tmp
echo %hdirl%\hbdebug.lib  >> msvc.tmp
echo %hdirl%\hbcommon.lib  >> msvc.tmp
echo %hdirl%\hbpp.lib  >> msvc.tmp
echo %hdirl%\hbcpage.lib  >> msvc.tmp
echo %hdirl%\hbwin.lib  >> msvc.tmp
echo %hdirl%\hbct.lib  >> msvc.tmp
echo %hdirl%\hbziparc.lib >> msvc.tmp
echo %hdirl%\hbmzip.lib >> msvc.tmp
echo %hdirl%\hbzlib.lib >> msvc.tmp
echo %hdirl%\hbpcre.lib >> msvc.tmp
echo %hdirl%\minizip.lib >> msvc.tmp
echo %hdirl%\xhb.lib >> msvc.tmp
echo %hdirl%\hbcplr.lib >> msvc.tmp
echo %hdirl%\png.lib >> msvc.tmp

rem Uncomment these two lines to use Advantage RDD
echo %hdirl%\rddads.lib >> msvc.tmp
echo %hdirl%\ace32.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
echo vfw32.lib     >> msvc.tmp

   IF EXIST MyApp.res echo MyApp.res >> msvc.tmp
   
   link @msvc.tmp /nologo /subsystem:windows /NODEFAULTLIB:msvcrt > link.log
   @type link.log
   @del $(PRGS:.prg=.obj)

$(PRGS:.prg=.obj) : $(PRGS:.prg=.c)
$(PRGS:.prg=.c) : $(PRGS)

MyApp.res : MyApp.rc
   rc.exe -r -d__FLAT__ MLS10.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 $<


Also, I assume I must also add all of the BMP files referenced in the RC file.

Can you tell me why the separator error ?

Tim
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Build.bat for MSVC 2015
Posted: Wed Apr 06, 2016 07:45 PM

Tim,

All PRGs names must be lowercase (name and extension)

Check that there are no tabs in line 47:

c:\Projects\MLS2015\Source\mServiceHistory.prg \

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Re: Build.bat for MSVC 2015
Posted: Wed Apr 06, 2016 07:50 PM

I re-cased all lines.

I removed the offending line and re-entered it.

I still get the same error.

Tim

Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Build.bat for MSVC 2015
Posted: Thu Apr 07, 2016 07:27 AM

Tim,

Please remove the line that fails and try it again

Don't reenter it

Lets see if the error continues without it

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: Build.bat for MSVC 2015
Posted: Thu Apr 07, 2016 07:55 AM
This works with hbmk2
m.bat
Code (fw): Select all Collapse
@echo off


SET PATH=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\;c:\fwh64\Harbour_Vs2015\bin;C:\WINDOWS;C:\WINDOWS\SYSTEM32


call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
set VisualStudioVersion=14.0

hbmk2 -inc -comp=msvc mastro.hbm fwh.hbc -omastrosql 

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO ------------------  Application successfully built *
echo start mastrosql.exe /HIGH  
mastrosql.exe

GOTO EXIT


:LINKERROR
ECHO ****************** Linking errors *
GOTO EXIT


:EXIT


fwh.hbc
Code (fw): Select all Collapse
{win}gt=gtgui

incpaths=c:\bcc71-64\INCLUDE
libpaths=c:\bcc71-64\LIB
{msvc}incpaths=include 
{msvc}libpaths=lib
incpaths=C:\FWH64\include
libpaths=C:\FWH64\lib

{bcc64}libs=five64 fivec64  

{msvc}libs=fiveh64 fivehc64  

{win}libs=hbwin 
{win}libs=gtgui    
{win}libs=hbct 
{win}libs=xhb 
{win}libs=hbziparc 
{win}libs=hbmzip 
{win}libs=minizip 
{win}libs=png  



{msvc}libs=kernel32  
{msvc}libs=user32    
{msvc}libs=gdi32     
{msvc}libs=winspool  
{msvc}libs=comctl32  
{msvc}libs=comdlg32  
{msvc}libs=advapi32  
{msvc}libs=shell32   
{msvc}libs=ole32     
{msvc}libs=oleaut32  
{msvc}libs=uuid      
{msvc}libs=odbc32    
{msvc}libs=odbccp32  
{msvc}libs=iphlpapi  
{msvc}libs=mpr       
{msvc}libs=version   
{msvc}libs=wsock32   
{msvc}libs=msimg32   
{msvc}libs=oledlg    
{msvc}libs=psapi     
{msvc}libs=gdiplus   
{msvc}libs=winmm     
{msvc}libs=vfw32


mastro.hbm
Code (fw): Select all Collapse
#{msvc}-ldflag=/FORCE:multiple
#{msvc}-ldflag=/NODEFAULTLIB:libc

{msvc}-ldflag= -W3 -O2  

-tshead=timestamp.ch 

-n 
-m 
-w 
-es2 
-gc0 
-p 
-q

tutor01.prg
tutor02.prg 


mastrosql.res


Regards
Maurizio
www.nipeservice.com
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Re: Build.bat for MSVC 2015
Posted: Thu Apr 07, 2016 06:12 PM
Maurizio,

You appear to have a Borland path reference in there which I am not using.

Antonio,

It's not that line. Here is a modified go64.bat file. I modified it, and put it in the same folder as the .prg files.

Code (fw): Select all Collapse
#Microsoft VS2015 make sample, (c) FiveTech Software 2014

HBDIR=c:\harbour
FWDIR=c:\fwh64
VCDIR="c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"
SDKDIR="c:\Program Files (x86)\Windows Kits\8.1"
hdirl=%HBDIR%\lib\vc64

PRGS = tdata.prg emskey.prg trecord.prg tsearch.prg minvpartspicklist.prg   mlaborglossary.prg  \
mservicekits.prg    rptglossary.prg mlaborchart.prg mwrkquote.prg   mlsphonebook.prg    mtimeclocks.prg \
mlsnotebook.prg mlsphotos.prg   mlsmessagecenter.prg mworkclose.prg mfileindex.prg  mservicehistory.prg \
g_graph.prg g_server.prg    qbcust.prg  mcustomer.prg   aswemail.prg    mclientfollowup.prg mtexteditor.prg \
mclientutilities.prg mpmscheduler.prg   rptclient.prg   mlscalendar.prg minvpurchaseorder.prg minvreturn.prg    \
minvcore.prg    rptinventory.prg minvutilities.prg  bldcomp.prg emswab.prg  inspchk.prg mlsautofu.prg   \
mlseditor.prg numcnv.prg    strucedit.prg   rpreview.prg    tcalc.prg   utillog.prg viewwostatus.prg webmap.prg \
woaudt.prg mworkorders.prg mworkprint.prg maraccounts.prg martransactions.prg rptreceivables.prg marutilities.prg \
mapaccounts.prg maptransactions.prg tdata.prg emskey.prg mls_func.prg msgdate.prg prospell.prg trecord.prg \
tsearch.prg minvpartspicklist.prg mlaborglossary.prg mservicekits.prg rptglossary.prg mlaborchart.prg \
mwrkquote.prg mlsphonebook.prg mtimeclocks.prg mlsnotebook.prg mlsphotos.prg mlsmessagecenter.prg mworkclose.prg \
mfileindex.prg mservicehistory.prg g_graph.prg g_server.prg qbcust.prg mcustomer.prg aswemail.prg mclientfollowup.prg \
mtexteditor.prg mclientutilities.prg mpmscheduler.prg rptclient.prg mlscalendar.prg minvpurchaseorder.prg minvreturn.prg \
minvcore.prg rptinventory.prg minvutilities.prg bldcomp.prg emswab.prg inspchk.prg mlsautofu.prg mlseditor.prg numcnv.prg \
strucedit.prg rpreview.prg tcalc.prg utillog.prg viewwostatus.prg webmap.prg woaudt.prg mworkorders.prg mworkprint.prg \
maraccounts.prg martransactions.prg rptreceivables.prg marutilities.prg mapaccounts.prg maptransactions.prg maputilities.prg \
rptpayables.prg mglaccounts.prg rptledger.prg mpayroll.prg mpayrollprocessing.prg rptpayroll.prg mpayrollutilities.prg \
mbankaccount.prg rptbank.prg mreports.prg rptworkordersb.prg rptworkorders.prg maswgraphs.prg demandforce.prg vindcd.prg \
utilcarfax.prg merchant.prg realtime.prg rreward.prg rprevfunc.prg mconfigsys.prg mlisteditor.prg minventory.prg mlistarrays.prg \
mworkdata.prg mworkparts.prg mworklabor.prg mlookup.prg mworkneeds.prg maputilities.prg rptpayables.prg mglaccounts.prg \
rptledger.prg mpayroll.prg mpayrollprocessing.prg rptpayroll.prg mpayrollutilities.prg mbankaccount.prg rptbank.prg mreports.prg \
rptworkordersb.prg rptworkorders.prg maswgraphs.prg demandforce.prg vindcd.prg utilcarfax.prg merchant.prg realtime.prg rreward.prg \
rprevfunc.prg mconfigsys.prg mlisteditor.prg minventory.prg mlistarrays.prg mworkdata.prg mworkparts.prg mworklabor.prg mlookup.prg \
mworkneeds.prg kukui.prg 
 
.SUFFIXES: .prg .c .obj .rc .res 

MyApp.exe : $(PRGS:.prg=.obj) MyApp.res
  echo $(PRGS:.prg=.obj) > msvc.tmp
    echo %fwdir%\lib\FiveH64.lib %fwdir%\lib\FiveHC64.lib  >> msvc.tmp

echo %hdirl%\hbrtl.lib  >> msvc.tmp
echo %hdirl%\hbvm.lib  >> msvc.tmp
echo %hdirl%\gtgui.lib  >> msvc.tmp
echo %hdirl%\hblang.lib  >> msvc.tmp
echo %hdirl%\hbmacro.lib  >> msvc.tmp
echo %hdirl%\hbrdd.lib  >> msvc.tmp
echo %hdirl%\rddntx.lib  >> msvc.tmp
echo %hdirl%\rddcdx.lib  >> msvc.tmp
echo %hdirl%\rddfpt.lib  >> msvc.tmp
echo %hdirl%\hbsix.lib  >> msvc.tmp
echo %hdirl%\hbdebug.lib  >> msvc.tmp
echo %hdirl%\hbcommon.lib  >> msvc.tmp
echo %hdirl%\hbpp.lib  >> msvc.tmp
echo %hdirl%\hbcpage.lib  >> msvc.tmp
echo %hdirl%\hbwin.lib  >> msvc.tmp
echo %hdirl%\hbct.lib  >> msvc.tmp
echo %hdirl%\hbziparc.lib >> msvc.tmp
echo %hdirl%\hbmzip.lib >> msvc.tmp
echo %hdirl%\hbzlib.lib >> msvc.tmp
echo %hdirl%\hbpcre.lib >> msvc.tmp
echo %hdirl%\minizip.lib >> msvc.tmp
echo %hdirl%\xhb.lib >> msvc.tmp
echo %hdirl%\hbcplr.lib >> msvc.tmp
echo %hdirl%\png.lib >> msvc.tmp

rem Uncomment these two lines to use Advantage RDD
echo %hdirl%\rddads.lib >> msvc.tmp
echo %hdirl%\ace32.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
echo vfw32.lib     >> msvc.tmp

   IF EXIST MyApp.res echo MyApp.res >> msvc.tmp
   
   link @msvc.tmp /nologo /subsystem:windows /NODEFAULTLIB:msvcrt > link.log
   @type link.log
   @del $(PRGS:.prg=.obj)

$(PRGS:.prg=.obj) : $(PRGS:.prg=.c)
$(PRGS:.prg=.c) : $(PRGS)

MyApp.res : MyApp.rc
   rc.exe -r -d__FLAT__ MLS10.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 $<


Now it fails at line 41 which is adding hbvm.lib. It doesn't matter what is there, it still fails with the "missing separator" error.

Also, I assume I have to specify the .bmp files that are included in the .rc build. How do I list them ?

Tim
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: Build.bat for MSVC 2015
Posted: Fri Apr 08, 2016 06:45 AM

Tim ,
it can works with msvc or borland , for 32 or 64 bit .

Maurizio

www.nipeservice.com

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Build.bat for MSVC 2015
Posted: Fri Apr 08, 2016 02:48 PM

Tim,

> Here is a modified go64.bat file

Surely you meant a makefile filename

Please post here the msvc.tmp file that is created

The .bmp filenames are already listed in your RC file. You don't need to list them in this makefile

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Re: Build.bat for MSVC 2015
Posted: Fri Apr 08, 2016 03:21 PM

Yes,I meant a .mak file name.

There is no msvc.tmp file being created at this point.

Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Build.bat for MSVC 2015
Posted: Fri Apr 08, 2016 03:33 PM

Tim,

Could we have a TeamViewer (or similar) session ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Re: Build.bat for MSVC 2015
Posted: Fri Apr 08, 2016 03:49 PM

Sure ... I'll email you the info.

Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Build.bat for MSVC 2015
Posted: Fri Apr 08, 2016 04:35 PM

Problem solved:

Never forget to add a tab in front of each makefile line to execute

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Re: Build.bat for MSVC 2015
Posted: Fri Apr 08, 2016 04:48 PM

One more STOP

NMAKE : fatal error U1077: 'link' : return code '0x49d'

The command line was link @msvc.tmp /nologo /subsysterm:windows /NODEFAULTLIB:msvcrt > link.log

Tim

Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit