nothing to make? gmake in itanium fails to make perl (274 Views)
Reply
Trusted Contributor
Steve Post
Posts: 1,058
Registered: ‎09-13-1998
Message 1 of 4 (274 Views)

nothing to make? gmake in itanium fails to make perl

At the bottom text of trying to make perl-5.8.8 from source on hpux11.31, itanium rx2800-i2.  This was right after the Configure command.  I am using gcc and gmake both from the software and porting archive.

 

If you compile perl5 on a different machine or from a different object
directory, copy the Policy.sh file from this object directory to the
new one before you run Configure -- this will help you with most of
the policy defaults.

# gmake
gmake: *** No rule to make target `<command-line>', needed by `miniperlmain.o'.  Stop.

 

My question is simple:  when this message pops up.  What is really going on?

 

 

Acclaimed Contributor
Dennis Handly
Posts: 25,047
Registered: ‎03-06-2006
Message 2 of 4 (266 Views)

Re: nothing to make? gmake on Integrity fails to make perl

>gmake: *** No rule to make target '<command-line>', needed by 'miniperlmain.o'.  Stop.

>What is really going on?

 

I'm not sure why "<command-line>" is a dependency of that object?  I would have thought it would be the other way.

 

Are you sure you aren't suppose to have something on that gmake line?

 

Trusted Contributor
Steve Post
Posts: 1,058
Registered: ‎09-13-1998
Message 3 of 4 (257 Views)

Re: nothing to make? gmake on Integrity fails to make perl

[ Edited ]

I think I found my problem.

In the new perl makefile are a lot lines like

av${OBJ_EXT}: <command-line>

 

run${OBJ_EXT}:<command-line>

 

When gmake goes to run, it sees the thing on the left of the colon needs to be updated.  So it refers to the thing on the right of the colon.  And "<command-line>"?   Gmake does not know what it is. 

 

This link shows the error, and reason for it. 

http://www.nntp.perl.org/group/perl.perl5.porters/2008/02/msg133864.html

 

Let me interpret what the person said...

My GUESS is that the Configure command to make the makefile is runs some stuff where the unix commands are slightly different between hpux11.3 and hpux.11.2.   As a result, the errant command probably spits out something like "command-line    usage  blah blah blah", essentially telling the perl script how to use the ls command or the bdf command or some such thing.  Or maybe the perl Configure script tried to run some unix command that does not even exist  (or not found in the path) for hpux11.3. 

 

Let me make my GUESS a bit clearer.   Something that makes the "makefile" got messed up and put down "<command-line>" instead of valid information. 

 

IF I blindly remove all lines in the makefile with <command-line> in it?  gmake suddenly starts working. 

hold on....I'm waiting for it die.

Ah!   It died because CLOCK_REALTIME was not declared.   At least the error does not sound insane.   I'll get go back to square one and try again. 

 

Even though my compile of perl failed, I think my specific problem is solved. 

 

 

 

 

 

Trusted Contributor
Steve Post
Posts: 1,058
Registered: ‎09-13-1998
Message 4 of 4 (242 Views)

Re: nothing to make? gmake on Integrity fails to make perl

I contacted HP Business Alliance when their FAQ for GCC for Itanium dumped me to a form to send an email to them. 

Here is the answer I got.   This is specific to gcc-4.6.0 on Itanium HPUX11.3

 

> HiRes.c:1361:17: error:  'CLOCK_REALTIME' undeclared (first use in

> this

> function)

 

I am not able to reproduce this error with 4.6.0 in IA. I see that CLOCK_REALTIME is defined as enum in time.h. The below attached sample program compiler/executes fine with 4.6.0/4.6.2 IA gcc compiler.

 

#include <stdio.h>

#include <unistd.h>

#include <time.h>

 

int main() {

  struct timespec clock_resolution;

  int stat;

  stat = clock_getres(CLOCK_REALTIME, &clock_resolution);

  printf("Clock resolution is %d seconds, %ld nanoseconds\n",

          clock_resolution.tv_sec, clock_resolution.tv_nsec);

  return 0;

}

 

The definition of CLOCK_REALTIME:

.../lib/gcc/ia64-hp-hpux11.23/4.6.0/include-fixed/sys/time.h:

 

typedef enum __clockid_t {

 CLOCK_INVALID = 0,

 CLOCK_REALTIME = 1,

 CLOCK_VIRTUAL = 2,

 CLOCK_PROFILE = 4,

 RTTIMER0 = 8,

 RTTIMER1 = 16

} clockid_t;

 

 

So I start rewriting the perl files from scratch to change this CLOCK_REALTIME to an enum?  I believe that giant mountain of an issue might not as big as it appears to be.   I'll start climbing.

 

If I remove HiRes from the makefile it compiles ok.  but that seem means I removed part of perl.

 

 

 

The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation.