Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't build with NMAKE #4

Open
Kazmirchuk opened this issue Nov 14, 2022 · 4 comments
Open

Can't build with NMAKE #4

Kazmirchuk opened this issue Nov 14, 2022 · 4 comments

Comments

@Kazmirchuk
Copy link

I'm following TIP477:

c:\playground\parse_args\win>nmake /nologo /f makefile.vc INSTALLDIR=c:\software\ActiveTcl_8.6.12
*** Using c:\software\ActiveTcl_8.6.12\lib\nmake\rules.vc

c:\playground\parse_args\win>echo 0,3,3,0  1>>versions.vc
*** Building against Tcl at 'c:\software\ActiveTcl_8.6.12\lib\..'
*** Intermediate directory will be 'c:\playground\parse_args\win\Release_AMD64_VC1932\parse_args_ThreadedDynamic'
*** Output directory will be 'c:\playground\parse_args\win\Release_AMD64_VC1932'
*** Installation, if selected, will be in 'c:\software\ActiveTcl_8.6.12\lib'
*** Suffix for binaries will be 't'
*** Compiler version 1932. Target AMD64, host AMD64.
  0 '@PACKAGE_VERSION@' => '0.3.3'
  1 '@PACKAGE_NAME@' => 'parse_args'
  2 '@PACKAGE_TCLNAME@' => 'parse_args'
  3 '@PKG_LIB_FILE@' => 'parse_args033t.dll'
  4 '@PKG_LIB_FILE8@' => 'parse_args033t.dll'
  5 '@PKG_LIB_FILE9@' => 'tcl9parse_args033t.dll'
NMAKE : fatal error U1073: don't know how to make 'c:\playground\parse_args\win\Release_AMD64_VC1932\parse_args_ThreadedDynamic\main.obj'
Stop.

c:\playground\parse_args\win>

It must be something trivial, but I can't see what's wrong.

I've just build rl_json using the same Tcl and compiler with (almost) no problems.

@cyanogilvie
Copy link
Member

The relevant aspects of the build system should be essentially the same as rl_json, but I don't think as much effort (any?) has been put into building parse_args on windows. I have updated and unified some aspects of it (TIP445 handing) for the version 0.3.4.1 release so maybe it works now?

Eyeballing it, win/makefile.vc in rl_json seems to have configuration for the correct build targets (rl_json.obj, etc), whereas parse_args doesn't look right (there is no main.c in this project). Taking a wild guess I'd say:

PRJ_OBJS = $(TMP_DIR)\main.obj

should be

PRJ_OBJS = $(TMP_DIR)\parse_args.obj

Patches welcome :)

@cyanogilvie
Copy link
Member

Looking back, apnadkarni did get it building on windows, but back then the main file was called main.c I think, so hopefully changing the makefile.vc will just work.

Not sure how to handle the TIP445 test in there though - it needs to be feature tested against the target Tcl version to see if the compatibility shims need to be defined. The code to do that is in aclocal.m4, but I don't know what the equivalent would be using the TIP477 approach.

@Kazmirchuk
Copy link
Author

at the moment I can't build parse_args even on Linux:

./generic/tip445.h: In function ‘Tcl_FreeInternalRep’:
./generic/tip445.h:42:36: error: ‘Tcl_ObjType {aka const struct Tcl_ObjType}’ has no member named ‘freeInternalRepProc’; did you mean ‘freeIntRepProc’?

My tcl.h:

$ rpm -qf /usr/include/tcl.h
tcl-devel-8.6.12-150300.14.3.1.x86_64

@cyanogilvie
Copy link
Member

cyanogilvie commented Dec 14, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants