O' exalted wizard,
I am trying to compile http://www.partner.digital.com/www-swdev/files/OPENVMS/examples/ether/ether.c
on my system for the purpose of licensing our software
based on ethernet hardware address. I get the following
messages during the compile:
$ cc ether.c
#include
.^
%CC-F-INCLUDEOPEN, An error occurred while attempting to open the include file "
": Key not found.
at line number 75 in file DKA200:[STK.V210]ETHER.C;1
#include
.^
%CC-E-NOOBJ, Object file deleted.
at line number 75 in file DKA200:[STK.V210]ETHER.C;1
What am I missing?
Thanks.
>#include
>.^
>%CC-E-NOOBJ, Object file deleted.
>at line number 75 in file DKA200:[STK.V210]ETHER.C;1
>
>What am I missing?
Looks like you're missing NMADEF.H. Not all system symbol definitions
are made availble by default, I guess NMADEF is considered a bit too
obscure for inclusion in the standard libraries. You can find it as a
MACRO32 module called $NMADEF in SYS$SHARE:LIB.MLB. Since it only contains
constant definitions, it's quite trivial to convert into a form digestable
by C:
$ LIBRARY/EXTRACT=$NMADEF/OUTPUT=NMADEF.H SYS$SHARE:LIB/MACRO
Now edit NMADEF.H removing the top lines:
.MACRO $NMADEF,$GBL
$DEFINI NMA,$GBL
and bottom lines:
$DEFEND NMA,$GBL,DEF
.ENDM
Now do a global substitution of "$EQU " for "#define ". ie, lines which
look like:
$EQU NMA$C_OBJ_NIC 19
$EQU NMA$C_FNC_LOA 15
$EQU NMA$C_FNC_DUM 16
become
#define NMA$C_OBJ_NIC 19
#define NMA$C_FNC_LOA 15
#define NMA$C_FNC_DUM 16
That should do the trick.
NMADEF is provided in SYS$LIB_C.TLB on Alpha, but is not provided on VAX.
The sample program has this in the comments at the beginning of the program.
Compilation command:
OpenVMS Alpha:
$ CC GET_ETHER+SYS$SHARE:SYS$LIB_C/LIBRARY
OpenVMS VAX:
$ CC GET_ETHER