MantisBT - CMake
View Issue Details
0005028CMakeCMakepublic2007-05-13 11:462016-06-10 14:30
Guenter 
Kitware Robot 
lowfeaturealways
closedmoved 
 
 
0005028: add support for NetWare target
Hi,
I'm very new to CMake (today); but I see more and more projects coming with CMake makefiles, and also I see a very wide range of compilers supported. Up to now I always have to create hand-tweaked GNU makefiles if I want to compile projects for NetWare as f.e. libgd; so I thought it might be worth asking you here for addding support for NetWare platform.
We have currently 3 compilers which can create NLMs (NetWare Loadable Modules):
Watcom, OpenWatcom (running on Win32)
MetroWerks CodeWarrior (running on Win32)
gcc / nlmconv (running on Win32, Linux)
for CodeWarrior / gcc I have created a standard Makefile which I mostly use to compile NLMs. Common to all of the above linkers is that they can deal with a *.def file which describes the further details of the final NLM (very similar to what Watcom also understands for other platforms).
Since I have no insight yet into CMake I lost with adding this platform without help of you folks here....
here's a sample to show my ugly makefiles:
http://www.gknw.net/development/samples/nlmconv/uname_patched.zip [^]
this is because it should support 2 different compilers, and two different hosts running on (Win32, Linux).
If someone is willing to help with adding NetWare platform please contact me!
Thanks!
No tags attached.
? NetWare.cmake (2,656) 2007-08-23 14:33
https://public.kitware.com/Bug/file/1120/NetWare.cmake
Issue History
2007-08-21 14:16Alex NeundorfNote Added: 0008556
2007-08-21 14:16Alex NeundorfAssigned ToBill Hoffman => Alex Neundorf
2007-08-21 14:16Alex NeundorfCategory => Test Category
2007-08-21 14:16Alex NeundorfDescription Updated
2007-08-22 07:19GuenterNote Added: 0008578
2007-08-23 14:33Alex NeundorfFile Added: NetWare.cmake
2007-08-23 16:20Alex NeundorfNote Added: 0008635
2007-08-28 12:56Alex NeundorfNote Added: 0008711
2007-10-07 18:53GuenterNote Added: 0009396
2007-11-25 08:48Alex NeundorfNote Added: 0009745
2010-05-12 16:37Alex NeundorfNote Added: 0020728
2011-03-10 15:30Alex NeundorfNote Added: 0025749
2011-03-10 15:30Alex NeundorfAssigned ToAlex Neundorf =>
2011-03-10 15:30Alex NeundorfStatusassigned => backlog
2016-06-10 14:27Kitware RobotNote Added: 0041358
2016-06-10 14:27Kitware RobotStatusbacklog => resolved
2016-06-10 14:27Kitware RobotResolutionopen => moved
2016-06-10 14:27Kitware RobotAssigned To => Kitware Robot
2016-06-10 14:30Kitware RobotStatusresolved => closed

Notes
(0008556)
Alex Neundorf   
2007-08-21 14:16   
What is a NLM ?
I know more or less nothing about Netware, so please explain a bit more.
(0008578)
Guenter   
2007-08-22 07:19   
Hi,
a NLM is the abbreviation for 'NetWare Loadable Module' and means nothing more than that it is the standard extension used for NetWare binaries, just like EXE on Win32.
NetWare builds are always kind of cross-builds, they are not build on NetWare itself because all the years there was no compiler available on NetWare, only recently we got a gcc port, but this is not maintained.
In order to support the NetWare platform we would need a definition file which the linkers understand in order to set some properties of the resulting NLM binary:
- version number
- copyright string
- description string
- imports
- exports
- start symbol
- exit symbol
- unloadcheck symbol
- linker flags
- autoload modules (dependencies)
if you have a Linux box handy then you can try our cross-gcc there with the sample I pointed to in previous post; but to see how it works its even sufficient if you just only let create the *.def file; just use the *.def target with GNU make, and you see what the *.def file contains....
Let me know how I can help more!

Günter.
(0008635)
Alex Neundorf   
2007-08-23 16:20   
You need cmake from cvs.
Please put the attached file into Modules/Platform/
It is a slightly modified copy of eCos.cmake, to make it work you will have to modify it more.
You have to set up cmake for cross compiling:
http://www.cmake.org/Wiki/CMake_Cross_Compiling [^]

Basically you have to create a toolchain file:
# this one is important
SET(CMAKE_SYSTEM_NAME NetWare)

# specify the cross compiler
SET(CMAKE_C_COMPILER ???)
SET(CMAKE_CXX_COMPILER ???)

# where is the target environment
SET(CMAKE_FIND_ROOT_PATH <where are Netware libs and headers?>)

# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
(0008711)
Alex Neundorf   
2007-08-28 12:56   
Do you need more help ?
(0009396)
Guenter   
2007-10-07 18:53   
Sorry for the huge delay, but I was busy with another project.
As you can see the initial post was from May when I had some more time.
Anyway thanks that you are looking into this!
Meanwhile CMake 2.4.7 is out - is this sufficient now, or do I still need to build a version fron CVS?

thanks, Günter.
(0009745)
Alex Neundorf   
2007-11-25 08:48   
You still need cmake cvs for cross compiling.

Alex
(0020728)
Alex Neundorf   
2010-05-12 16:37   
Are you still interested in this ?

Alex
(0025749)
Alex Neundorf   
2011-03-10 15:30   
Setting this to backlog (or should it just be closed ?).
It seems nobody is interested in it.

Alex
(0041358)
Kitware Robot   
2016-06-10 14:27   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.