Makefile para FWH64

Makefile para FWH64

Postby TOTOVIOTTI » 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
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: Makefile para FWH64

Postby TOTOVIOTTI » Tue Nov 10, 2015 8:07 pm

Aclaración, tengo instalado el Visual Studio y el error que tira es:

d:\Univ@c.64>if exist "C:\Program Files\Microsoft Visual Studio 12.0\VC\vcvarsal
l.bat" call "C:\Program Files\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
_amd64

d:\Univ@c.64>if exist "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vc
varsall.bat" call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvars
all.bat" x86_amd64

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.

univac64.mak(14) : fatal error U1033: syntax error : 'echo' unexpected
Stop.
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: Makefile para FWH64

Postby Antonio Linares » Tue Nov 10, 2015 10:18 pm

Es esta la línea 14 del fichero make ?

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

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

Re: Makefile para FWH64

Postby TOTOVIOTTI » Tue Nov 10, 2015 10:20 pm

No Antonio, es ésta:

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

Gracias!
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: Makefile para FWH64

Postby Antonio Linares » Tue Nov 10, 2015 10:22 pm

Cámbiala asi y comprueba que sucede:

echo principal.obj personal.obj > msvc.tmp
regards, saludos

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

Re: Makefile para FWH64

Postby TOTOVIOTTI » Tue Nov 10, 2015 10:28 pm

Sigue dando lo mismo en la misma línea... :oops:
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: Makefile para FWH64

Postby TOTOVIOTTI » Tue Nov 10, 2015 10:29 pm

Lo hice así y también me da el mismo error:

echo principal.obj > msvc.tmp
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: Makefile para FWH64

Postby Antonio Linares » Tue Nov 10, 2015 10:32 pm

Prueba a cambiar esta línea asi:

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

A ver si hay variación
regards, saludos

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

Re: Makefile para FWH64

Postby TOTOVIOTTI » Tue Nov 10, 2015 10:38 pm

Ahora si me lo tira en la línea que tú me marcaste antes:

echo $(FWDIR)\lib\FiveH64.lib $(FWDIR)\lib\FiveHC64.lib >> msvc.tmp
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: Makefile para FWH64

Postby Antonio Linares » Tue Nov 10, 2015 10:40 pm

Estas líneas tambien tienes que modificarlas asi:

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

A ver hasta donde llega ahora
regards, saludos

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

Re: Makefile para FWH64

Postby cnavarro » Tue Nov 10, 2015 10:47 pm

Creo que el problema puede estar en:

En esta linea

Code: Select all  Expand view

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
 


quita
Code: Select all  Expand view

 > msvc.tmp
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Makefile para FWH64

Postby TOTOVIOTTI » Tue Nov 10, 2015 10:50 pm

Quedaría asi?

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 \ (sigue dando aquí....)
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

Perdón por las molestias...
Roberto
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: Makefile para FWH64

Postby TOTOVIOTTI » Tue Nov 10, 2015 10:51 pm

Cristóbal
he hecho como tú dices y tampoco...
Que trabado estoy...
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: Makefile para FWH64

Postby cnavarro » Tue Nov 10, 2015 10:55 pm

Tienes que quitar lo que te he dicho
No tiene sentido realizar > sin un echo

Ahora que error te da?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Makefile para FWH64

Postby Antonio Linares » Tue Nov 10, 2015 11:15 pm

Aqui sobra esta línea: (entre biblioteca y tablas)

echo principal.obj personal.obj alumnos_1.obj alumnos_2.obj alumnos_3.obj alumnos_4.obj \ (sigue dando aquí....)
administracion.obj biblioteca.obj \ tablas.obj impresiones.obj imprime_a1.obj \
imprime_a2.obj imprime_v.obj imprime_p1.obj > msvc.tmp
regards, saludos

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

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: carlos vargas and 35 guests