Ayuda..... NMAKE II
Ayuda..... NMAKE II
Colegas, alguien tendría algún ejemplo para nMake que funcione, y que tome los prg en un directorio especifico. Ej ".\Source" y los obj los deje en otro (Ej. ".\Obj)
Hace días que lo intento, y no hay caso.
El ej. que propone Antonio no me funciona
http://forums.fivetechsupport.com/viewt ... ke#p122881
Desde ya muchísimas gracias.
Un abrazo. Miguel
Hace días que lo intento, y no hay caso.
El ej. que propone Antonio no me funciona
http://forums.fivetechsupport.com/viewt ... ke#p122881
Desde ya muchísimas gracias.
Un abrazo. Miguel
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ayuda..... NMAKE II
Miguel,
Este lo he construido recientemente para Visual Studio 2010:
go.bat
test.mak
Este lo he construido recientemente para Visual Studio 2010:
go.bat
Code: Select all
c:\"Program Files (x86)\Microsoft Visual Studio 10.0"\VC\bin\nmake -ftest.mak
if errorlevel==0 one.exe
Code: Select all
#Microsoft VS2010 make sample, (c) FiveTech Software 2010
HBDIR=c:\harbour
FWDIR=c:\fwh
VCDIR="c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC"
SDKDIR="c:\Program Files\Microsoft SDKs\Windows\v7.0A"
.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\FiveH32.lib $(FWDIR)\lib\FiveHC32.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbrtl.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbvm.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\gtgui.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hblang.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbmacro.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbrdd.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\rddntx.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\rddcdx.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\rddfpt.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbsix.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbdebug.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbcommon.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbpp.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbwin.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbcplr.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\xhb.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbpcre.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbct.lib >> msvc.tmp
echo $(HBDIR)\lib\vc32\hbcpage.lib >> msvc.tmp
echo $(SDKDIR)\lib\kernel32.lib >> msvc.tmp
echo $(SDKDIR)\lib\user32.lib >> msvc.tmp
echo $(SDKDIR)\lib\gdi32.lib >> msvc.tmp
echo $(SDKDIR)\lib\winspool.lib >> msvc.tmp
echo $(SDKDIR)\lib\comctl32.lib >> msvc.tmp
echo $(SDKDIR)\lib\comdlg32.lib >> msvc.tmp
echo $(SDKDIR)\lib\advapi32.lib >> msvc.tmp
echo $(SDKDIR)\lib\shell32.lib >> msvc.tmp
echo $(SDKDIR)\lib\ole32.lib >> msvc.tmp
echo $(SDKDIR)\lib\oleaut32.lib >> msvc.tmp
echo $(SDKDIR)\lib\uuid.lib >> msvc.tmp
echo $(SDKDIR)\lib\odbc32.lib >> msvc.tmp
echo $(SDKDIR)\lib\odbccp32.lib >> msvc.tmp
echo $(SDKDIR)\lib\iphlpapi.lib >> msvc.tmp
echo $(SDKDIR)\lib\mpr.lib >> msvc.tmp
echo $(SDKDIR)\lib\version.lib >> msvc.tmp
echo $(SDKDIR)\lib\wsock32.lib >> msvc.tmp
echo $(SDKDIR)\lib\msimg32.lib >> msvc.tmp
echo $(SDKDIR)\lib\oledlg.lib >> msvc.tmp
echo $(SDKDIR)\lib\psapi.lib >> msvc.tmp
echo $(SDKDIR)\lib\gdiplus.lib >> msvc.tmp
echo $(SDKDIR)\lib\winmm.lib >> msvc.tmp
IF EXIST one.res echo one.res >> msvc.tmp
SET LIB=$(VCDIR)\lib
SET PATH=$(VCDIR)\bin
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:
SET PATH=$(VCDIR)\bin
cl.exe -c -TP -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include $<
Re: Ayuda..... NMAKE II
Antonio, tenes razón, quizás me exprese mal, tu ejemplo funciona, a lo que me refería es como hago para indicarle en donde buscar los prg y en donde grabar los obj.
Suponiendo tener una estructura de directorios similar a esta:
\Prueba
\Source
\Obj
\Resource
\Etc.
He buscado manuales del nMake, y creo haber probado casi todo..... y no hay caso no logro hacerlo funcionar.
Si dejo todo en un mismo directorio (.bat .mak .prg .rc) si funciona de maravillas.
Desde ya muchísimas gracias por haberme contestado.
Un gran abrazo.
Miguel
Suponiendo tener una estructura de directorios similar a esta:
\Prueba
\Source
\Obj
\Resource
\Etc.
He buscado manuales del nMake, y creo haber probado casi todo..... y no hay caso no logro hacerlo funcionar.
Si dejo todo en un mismo directorio (.bat .mak .prg .rc) si funciona de maravillas.
Desde ya muchísimas gracias por haberme contestado.
Un gran abrazo.
Miguel
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ayuda..... NMAKE II
Prueba a poner los paths aqui:
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.obj : one.c
two.obj : two.c
three.obj : three.c
one.c : one.prg
two.c : two.prg
three.c : three.prg
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ayuda..... NMAKE II
Miguel,
Aqui está la documentación de nmake. la encontré por la red:
http://www.scribd.com/doc/106291755/Nmake-Documentation
Aqui está la documentación de nmake. la encontré por la red:
http://www.scribd.com/doc/106291755/Nmake-Documentation
Re: Ayuda..... NMAKE II
Ya lo había probado:
{.\Obj}\test.obj : {.\Source}\test.c
{.\Obj}\one.obj : {.\Source}\one.c
{.\Source}\test.c : {.\Source}\test.prg
{.\Source}\one.c : {.\Source}\one.prg
--------------------------------------------------------------
... y así
APP_OBJ_DIR= .\Obj
APP_PRG_DIR= .\Source
...
...
{$(APP_OBJ_DIR)}\test.obj : {$(APP_PRG_DIR)}\test.c
{$(APP_OBJ_DIR)}\one.obj : {$(APP_PRG_DIR)}\one.c
{$(APP_PRG_DIR)}\test.c : {$(APP_PRG_DIR)}\test.prg
{$(APP_PRG_DIR)}\one.c : {$(APP_PRG_DIR)}\one.prg
--------------------------------------------------------------------------
y no funciona, siempre tira el error:
NMAKE : fatal error U1077: 'F:\wFH64\vc64\bin\link' : return code '0x487'
los path están correctos...
Voy a revisar el manual que me indicas, pero me parece que es el mismo que yo conseguí.
Un gran abrazo.
Miguel
PD. Mañana te estaría solicitando el FTDN como lo prometí. Tengo que terminar de ver como es la compra en el exterior con las nuevas normativas que no esta SOMETIENDO nuestra Sra. Presidenta.
{.\Obj}\test.obj : {.\Source}\test.c
{.\Obj}\one.obj : {.\Source}\one.c
{.\Source}\test.c : {.\Source}\test.prg
{.\Source}\one.c : {.\Source}\one.prg
--------------------------------------------------------------
... y así
APP_OBJ_DIR= .\Obj
APP_PRG_DIR= .\Source
...
...
{$(APP_OBJ_DIR)}\test.obj : {$(APP_PRG_DIR)}\test.c
{$(APP_OBJ_DIR)}\one.obj : {$(APP_PRG_DIR)}\one.c
{$(APP_PRG_DIR)}\test.c : {$(APP_PRG_DIR)}\test.prg
{$(APP_PRG_DIR)}\one.c : {$(APP_PRG_DIR)}\one.prg
--------------------------------------------------------------------------
y no funciona, siempre tira el error:
NMAKE : fatal error U1077: 'F:\wFH64\vc64\bin\link' : return code '0x487'
los path están correctos...
Voy a revisar el manual que me indicas, pero me parece que es el mismo que yo conseguí.
Un gran abrazo.
Miguel
PD. Mañana te estaría solicitando el FTDN como lo prometí. Tengo que terminar de ver como es la compra en el exterior con las nuevas normativas que no esta SOMETIENDO nuestra Sra. Presidenta.
- lucasdebeltran
- Posts: 1303
- Joined: Tue Jul 21, 2009 8:12 am
- Contact:
Re: Ayuda..... NMAKE II
Hola,
Por favor, ¿cómo lo solucionaste?. A mí me pasa igual, quiero indicarte varios subdirectorios.
Muchas gracias.
Por favor, ¿cómo lo solucionaste?. A mí me pasa igual, quiero indicarte varios subdirectorios.
Muchas gracias.
Muchas gracias. Many thanks.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ayuda..... NMAKE II
Lucas,
Esta debiera ser la forma de hacerlo:
Esta debiera ser la forma de hacerlo:
Code: Select all
{.\Obj}\test.obj : {.\Source}\test.c
{.\Obj}\one.obj : {.\Source}\one.c
- lucasdebeltran
- Posts: 1303
- Joined: Tue Jul 21, 2009 8:12 am
- Contact:
Re: Ayuda..... NMAKE II
Antonio,
No funciona lo siento.
Te pongo todo el .mak
Mil gracias.
No funciona lo siento.
Te pongo todo el .mak
Code: Select all
HBDIR=c:\harbourmsvc2010
FWDIR=c:\fwh
VCDIR="c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC"
SDKDIR="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A"
.SUFFIXES: .prg .c .obj
test.lib : {.\Obj}\one.obj {.\Obj}\two.obj {.\Obj}\three.obj {.\Obj}\myc.obj
if not exist test.lib $(VCDIR)\bin\lib /DEF:test.def /OUT:test.lib
$(VCDIR)\bin\lib test.lib /OUT:test.lib {.\Obj}\one.obj {.\Obj}\two.obj {.\Obj}\three.obj {.\Obj}\myc.obj
{.\Obj}\one.obj : {.\Source}\one.c
{.\Obj}\two.obj : {.\Source}\two.c
{.\Obj}\three.obj : {.\Source}\three.c
{.\Obj}\myc.obj : {.\Source}\myc.c
{.\Obj}\one.c : {.\Source}\one.prg
{.\Obj}\two.c : {.\Source}\two.prg
{.\Obj}\three.c : {.\Source}\three.prg
.prg.c:
$(HBDIR)\bin\harbour $< /n /i$(FWDIR)\include;$(HBDIR)\include
.c.obj:
SET PATH=$(VCDIR)\bin
cl.exe -c -TP -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include $<
Mil gracias.
Muchas gracias. Many thanks.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ayuda..... NMAKE II
Lucas,
Has probado a especificar el path completo sin los { } ?
.\Obj\one.obj : .\Source\one.c
Has probado a especificar el path completo sin los { } ?
.\Obj\one.obj : .\Source\one.c
- lucasdebeltran
- Posts: 1303
- Joined: Tue Jul 21, 2009 8:12 am
- Contact:
Re: Ayuda..... NMAKE II
Antonio,
Tampoco, sigue fallando.
Alguna macro rara tiene que ser.
Mil gracias de verdad.
Tampoco, sigue fallando.
Alguna macro rara tiene que ser.
Mil gracias de verdad.
Muchas gracias. Many thanks.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
Re: Ayuda..... NMAKE II
Quizás esto te sirva
http://support.microsoft.com/kb/60340/es
No es exactamente lo que necesitas pero puede ser util
Un saludo
http://support.microsoft.com/kb/60340/es
No es exactamente lo que necesitas pero puede ser util
Un saludo
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ayuda..... NMAKE II
Cristobal,
muchas gracias, muy buen ejemplo
muchas gracias, muy buen ejemplo
Code: Select all
# macros
objdir = c:\lib
wrkdir = c:\work
list = $(objdir)\test1.obj $(objdir)\test2.obj $(objdir)\test3.obj
# inference rules
# compile
# $< represents the dependent file.
# $(*F) represents the targets base name.
# $(*R) represents the targets base name and directory.
{$(wrkdir)}.c{$(objdir)}.obj:
cl /c $<
copy $(*F).obj $(*R).obj
erase $(*F).obj
# link
# $(**R) represents all the dependents including directories.
{$(objdir)}.obj{}.exe:
link $(**R);
# target-dependencies
# $$(@B) represents the base name of the current target.
test1.exe : $(list)
$(objdir)\*.obj : $(wrkdir)\$$(@B).c $(wrkdir)\test1.h $(wrkdir)\test2.h
- lucasdebeltran
- Posts: 1303
- Joined: Tue Jul 21, 2009 8:12 am
- Contact:
Re: Ayuda..... NMAKE II
Lo siento, me sigue sin funcionar.
Ese ejemplo no funciona.
Y este tampoco.
Si quieres puedo enviarte los .prg para que te sea más fácil reproducir el entorno por favor.
Muchas gracias.
Ese ejemplo no funciona.
Y este tampoco.
Si quieres puedo enviarte los .prg para que te sea más fácil reproducir el entorno por favor.
Muchas gracias.
Code: Select all
# macros
objdir = .\obj
wrkdir = .\source
list = $(objdir)\one.obj $(objdir)\two.obj $(objdir)\three.obj $(objdir)\myc.obj
HBDIR=c:\harbourmsvc2010
FWDIR=c:\fwh
VCDIR="c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC"
SDKDIR="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A"
.SUFFIXES: .prg .c .obj
test.lib : $(objdir)\one.obj $(objdir)\two.obj $(objdir)\three.obj $(objdir)\myc.obj
if not exist test.lib $(VCDIR)\bin\lib /DEF:test.def /OUT:test.lib
$(VCDIR)\bin\lib test.lib /OUT:test.lib $(objdir)\one.obj $(objdir)\two.obj $(objdir)\three.obj $(objdir)\myc.obj
$(objdir)\one.obj : $(objdir)\one.c
$(objdir)\two.obj : $(objdir)\two.c
$(objdir)\three.obj : $(objdir)\three.c
$(objdir)\myc.obj : $(objdir)\myc.c
$(objdir)\one.c : $(wrkdir)\one.prg
$(objdir)\two.c : $(wrkdir)\two.prg
$(objdir)\three.c : $(wrkdir)\three.prg
.prg.c:
$(HBDIR)\bin\harbour $< /n /i$(FWDIR)\include;$(HBDIR)\include
{$(wrkdir)}.c{$(objdir)}.obj:
SET PATH=$(VCDIR)\bin
cl.exe -c -TP -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include $<
copy $(*F).obj $(*R).obj
erase $(*F).obj
Muchas gracias. Many thanks.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
- lucasdebeltran
- Posts: 1303
- Joined: Tue Jul 21, 2009 8:12 am
- Contact:
Re: Ayuda..... NMAKE II
Aquí están los .prgs
http://demo.ovh.es/es/a05a2af1d00f87eb22d6883bca496e96/
o
http://www.gigasize.com/get/8ymf6o32vqf
Un millón de gracias.
http://demo.ovh.es/es/a05a2af1d00f87eb22d6883bca496e96/
o
http://www.gigasize.com/get/8ymf6o32vqf
Un millón de gracias.
Muchas gracias. Many thanks.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.