Makefile para FWH64
Posted: Tue Nov 10, 2015 8:05 pm
Amigos,
estoy tratando de armar mi makefile para hacer la primera compilación de varios prgs para generar
mi sistema en 64 bits. Copiando el formato que en una publicación de Antonio realizó, fui copiando
y tratando de armar para mi formato, mi go.bat es:
@set oldpath=%path%
@set oldinclude=%include%
@set oldlib=%lib%
@set oldlibpath=%libpath%
if exist "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
c:\"Program Files (x86)\Microsoft Visual Studio 12.0"\VC\bin\nmake -funivac64.mak
@set path=%oldpath%
@set include=%oldinclude%
@set lib=%oldlib%
@set libpath=%oldlibpath%
@set oldpath=""
@set oldinclude=""
@set oldlib=
@set oldlibpath=
if errorlevel==0 univac.exe
y mi univac64.mak es el siguiente:
#Microsoft VS2013 make sample, (c) FiveTech Software 2014
HBDIR=d:\harbour64
FWDIR=d:\fwh64
VCDIR="c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC"
SDKDIR="c:\Program Files (x86)\Windows Kits\8.1"
RESDIR=d:\univ@c.64\recursos
FUENTES=d:\univ@c.64\fuentes
.SUFFIXES: .prg .c .obj .rc .res
univac.exe : principal.obj personal.obj alumnos_1.obj alumnos_2.obj alumnos_3.obj alumnos_4.obj administracion.obj biblioteca.obj tablas.obj impresiones.obj imprime_a1.obj imprime_a2.obj imprime_v.obj imprime_p1.obj $(RESDIR)\alumnos.res $(RESDIR)\personal.res $(RESDIR)\administracion.res $(RESDIR)\biblioteca.res $(RESDIR)\univac.res > msvc.tmp
echo principal.obj personal.obj alumnos_1.obj alumnos_2.obj alumnos_3.obj alumnos_4.obj administracion.obj biblioteca.obj tablas.obj impresiones.obj imprime_a1.obj imprime_a2.obj imprime_v.obj imprime_p1.obj > msvc.tmp
echo $(FWDIR)\lib\FiveH64.lib $(FWDIR)\lib\FiveHC64.lib >> msvc.tmp
echo $(HBDIR)\lib\hbrtl.lib >> msvc.tmp
echo $(HBDIR)\lib\hbvm.lib >> msvc.tmp
echo $(HBDIR)\lib\gtgui.lib >> msvc.tmp
echo $(HBDIR)\lib\hblang.lib >> msvc.tmp
echo $(HBDIR)\lib\hbmacro.lib >> msvc.tmp
echo $(HBDIR)\lib\hbrdd.lib >> msvc.tmp
echo $(HBDIR)\lib\rddntx.lib >> msvc.tmp
echo $(HBDIR)\lib\rddcdx.lib >> msvc.tmp
echo $(HBDIR)\lib\rddfpt.lib >> msvc.tmp
echo $(HBDIR)\lib\hbsix.lib >> msvc.tmp
echo $(HBDIR)\lib\hbdebug.lib >> msvc.tmp
echo $(HBDIR)\lib\hbcommon.lib >> msvc.tmp
echo $(HBDIR)\lib\hbpp.lib >> msvc.tmp
echo $(HBDIR)\lib\hbwin.lib >> msvc.tmp
echo $(HBDIR)\lib\hbcplr.lib >> msvc.tmp
echo $(HBDIR)\lib\xhb.lib >> msvc.tmp
echo $(HBDIR)\lib\hbpcre.lib >> msvc.tmp
echo $(HBDIR)\lib\hbct.lib >> msvc.tmp
echo $(HBDIR)\lib\hbcpage.lib >> msvc.tmp
echo $(HBDIR)\lib\hbzlib.lib >> msvc.tmp
echo $(HBDIR)\lib\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
echo $(RESDIR)\alumnos.res >> msvc.tmp
echo $(RESDIR)\personal.res >> msvc.tmp
echo $(RESDIR)\administracion.res >> msvc.tmp
echo $(RESDIR)\biblioteca.res >> msvc.tmp
echo $(RESDIR)\univac.res >> msvc.tmp
link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc > link.log
@type link.log
@del *.c
@del msvc.tmp
principal.obj : principal.c
personal.obj : personal.c
alumnos_1.obj : alumnos_1.c
alumnos_2.obj : alumnos_2.c
alumnos_3.obj : alumnos_3.c
alumnos_4.obj : alumnos_4.c
administracion.obj: administracion.c
biblioteca.obj : biblioteca.c
tablas.obj : tablas.c
impresiones.obj : impresiones.c
imprime_a1.obj : imprime_a1.c
imprime_a2.obj : imprime_a2.c
imprime_v.obj : imprime_v.c
imprime_p1.obj : imprime_p1.c
principal.c : $(FUENTES)\principal.prg
personal.c : $(FUENTES)\personal.prg
alumnos_1.c : $(FUENTES)\alumnos_1.prg
alumnos_2.c : $(FUENTES)\alumnos_2.prg
alumnos_3.c : $(FUENTES)\alumnos_3.prg
alumnos_4.c : $(FUENTES)\alumnos_4.prg
administracion.c: $(FUENTES)\administracion.prg
biblioteca.c : $(FUENTES)\biblioteca.prg
tablas.c : $(FUENTES)\tablas.prg
impresiones.c : $(FUENTES)\impresiones.prg
imprime_a1.c : $(FUENTES)\imprime_a1.prg
imprime_a2.c : $(FUENTES)\imprime_a2.prg
imprime_v.c : $(FUENTES)\imprime_v.prg
imprime_p1.c : $(FUENTES)\imprime_p1.prg
.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 $<
Que puedo estar haciendo mal, cuando compilo en 32 bits, enlazo los prgs de ésta manera y me funciona excelente,
pero no sé que puedo estar haciendo incorrecto que no hay forma de hacer nada.
Desde ya, muchas gracias!
Roberto
estoy tratando de armar mi makefile para hacer la primera compilación de varios prgs para generar
mi sistema en 64 bits. Copiando el formato que en una publicación de Antonio realizó, fui copiando
y tratando de armar para mi formato, mi go.bat es:
@set oldpath=%path%
@set oldinclude=%include%
@set oldlib=%lib%
@set oldlibpath=%libpath%
if exist "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
c:\"Program Files (x86)\Microsoft Visual Studio 12.0"\VC\bin\nmake -funivac64.mak
@set path=%oldpath%
@set include=%oldinclude%
@set lib=%oldlib%
@set libpath=%oldlibpath%
@set oldpath=""
@set oldinclude=""
@set oldlib=
@set oldlibpath=
if errorlevel==0 univac.exe
y mi univac64.mak es el siguiente:
#Microsoft VS2013 make sample, (c) FiveTech Software 2014
HBDIR=d:\harbour64
FWDIR=d:\fwh64
VCDIR="c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC"
SDKDIR="c:\Program Files (x86)\Windows Kits\8.1"
RESDIR=d:\univ@c.64\recursos
FUENTES=d:\univ@c.64\fuentes
.SUFFIXES: .prg .c .obj .rc .res
univac.exe : principal.obj personal.obj alumnos_1.obj alumnos_2.obj alumnos_3.obj alumnos_4.obj administracion.obj biblioteca.obj tablas.obj impresiones.obj imprime_a1.obj imprime_a2.obj imprime_v.obj imprime_p1.obj $(RESDIR)\alumnos.res $(RESDIR)\personal.res $(RESDIR)\administracion.res $(RESDIR)\biblioteca.res $(RESDIR)\univac.res > msvc.tmp
echo principal.obj personal.obj alumnos_1.obj alumnos_2.obj alumnos_3.obj alumnos_4.obj administracion.obj biblioteca.obj tablas.obj impresiones.obj imprime_a1.obj imprime_a2.obj imprime_v.obj imprime_p1.obj > msvc.tmp
echo $(FWDIR)\lib\FiveH64.lib $(FWDIR)\lib\FiveHC64.lib >> msvc.tmp
echo $(HBDIR)\lib\hbrtl.lib >> msvc.tmp
echo $(HBDIR)\lib\hbvm.lib >> msvc.tmp
echo $(HBDIR)\lib\gtgui.lib >> msvc.tmp
echo $(HBDIR)\lib\hblang.lib >> msvc.tmp
echo $(HBDIR)\lib\hbmacro.lib >> msvc.tmp
echo $(HBDIR)\lib\hbrdd.lib >> msvc.tmp
echo $(HBDIR)\lib\rddntx.lib >> msvc.tmp
echo $(HBDIR)\lib\rddcdx.lib >> msvc.tmp
echo $(HBDIR)\lib\rddfpt.lib >> msvc.tmp
echo $(HBDIR)\lib\hbsix.lib >> msvc.tmp
echo $(HBDIR)\lib\hbdebug.lib >> msvc.tmp
echo $(HBDIR)\lib\hbcommon.lib >> msvc.tmp
echo $(HBDIR)\lib\hbpp.lib >> msvc.tmp
echo $(HBDIR)\lib\hbwin.lib >> msvc.tmp
echo $(HBDIR)\lib\hbcplr.lib >> msvc.tmp
echo $(HBDIR)\lib\xhb.lib >> msvc.tmp
echo $(HBDIR)\lib\hbpcre.lib >> msvc.tmp
echo $(HBDIR)\lib\hbct.lib >> msvc.tmp
echo $(HBDIR)\lib\hbcpage.lib >> msvc.tmp
echo $(HBDIR)\lib\hbzlib.lib >> msvc.tmp
echo $(HBDIR)\lib\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
echo $(RESDIR)\alumnos.res >> msvc.tmp
echo $(RESDIR)\personal.res >> msvc.tmp
echo $(RESDIR)\administracion.res >> msvc.tmp
echo $(RESDIR)\biblioteca.res >> msvc.tmp
echo $(RESDIR)\univac.res >> msvc.tmp
link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc > link.log
@type link.log
@del *.c
@del msvc.tmp
principal.obj : principal.c
personal.obj : personal.c
alumnos_1.obj : alumnos_1.c
alumnos_2.obj : alumnos_2.c
alumnos_3.obj : alumnos_3.c
alumnos_4.obj : alumnos_4.c
administracion.obj: administracion.c
biblioteca.obj : biblioteca.c
tablas.obj : tablas.c
impresiones.obj : impresiones.c
imprime_a1.obj : imprime_a1.c
imprime_a2.obj : imprime_a2.c
imprime_v.obj : imprime_v.c
imprime_p1.obj : imprime_p1.c
principal.c : $(FUENTES)\principal.prg
personal.c : $(FUENTES)\personal.prg
alumnos_1.c : $(FUENTES)\alumnos_1.prg
alumnos_2.c : $(FUENTES)\alumnos_2.prg
alumnos_3.c : $(FUENTES)\alumnos_3.prg
alumnos_4.c : $(FUENTES)\alumnos_4.prg
administracion.c: $(FUENTES)\administracion.prg
biblioteca.c : $(FUENTES)\biblioteca.prg
tablas.c : $(FUENTES)\tablas.prg
impresiones.c : $(FUENTES)\impresiones.prg
imprime_a1.c : $(FUENTES)\imprime_a1.prg
imprime_a2.c : $(FUENTES)\imprime_a2.prg
imprime_v.c : $(FUENTES)\imprime_v.prg
imprime_p1.c : $(FUENTES)\imprime_p1.prg
.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 $<
Que puedo estar haciendo mal, cuando compilo en 32 bits, enlazo los prgs de ésta manera y me funciona excelente,
pero no sé que puedo estar haciendo incorrecto que no hay forma de hacer nada.
Desde ya, muchas gracias!
Roberto