Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Why do you need makefile in perl?

by taint (Chaplain)
on Dec 17, 2013 at 22:27 UTC ( #1067539=note: print w/ replies, xml ) Need Help??


in reply to Why do you need makefile in perl?

Greetings, venky4289.

It's hard to know where to start on this -- volumes could be written. But I'll do my best to be concise. Traditionally Make has been a standard, integral part of UNIX, and UNIX-like (*NIX) systems. In fact, that's how you often built the system you were installing. This makes for a great deal of flexibility, and personalization -- hey, everybody likes choices. Anyway, This wasn't the case, with MS-DOS/Windows, presumably because they were a "for profit" company, and they already had a product they sold, that provided a make. On the other hand, this also paved the way for the likes of ActiveState. Well, given that Perl is free, and the fact that MS products didn't come with a free version of make, someone created nmake (I've forgotten details, and wikipedia doesn't provide accurate details). Which was a free version of make. That would run within dos (MS-DOS). Did you know that make will allow you to build Perl, and install it where ever you want to? Did you also know that every time you download a Perl Module, and unpack it, you can use Perl, and make to make, and install it? Did you also know that having make allows you to install 16 (or more) different versions of Perl, and by simply providing PERFIX=, you can install them anywhere you want to? See also: perlbrew

I wish I could clearly recall the actual origin, and author of nmake. But I'll update this, if I do (recall/find it).

Hope this helped, and best wishes.

--Chris

UPDATE here's the oldest reference I could find where Microsoft references nmake: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q132084
UPDATE Here's also a related article, on PerlMonks: 803600
Yes. What say about me, is true.


Comment on Re: Why do you need makefile in perl?
Re^2: Why do you need makefile in perl?
by venky4289 (Novice) on Dec 18, 2013 at 07:44 UTC

    Thanks for the Reply. Now i got an idea, But can you please tell me waht does each command do ? perl makefile.pl make make test make install

      perl Makefile.PL sets up the necessary build directories and creates a Makefile.

      make builds the module by copying the contents of <t>lib/ into blib ("build library"); if there are any XS modules, these get compiled at this point.

      make test runs all the tests vs. the code now in blib to verify that it passes its tests.

      make install copies the code in blib to the local Perl module directory as defined in the Perl install.

      make disttest verifies that we have all the files we expect, we don't have any files we don't expect, and that they are all in the right relative locations when we ready the code for distribution; it also rechecks that the ready-for-distribution code still passes its tests.

      make dist creates a tar ball of the source we want to distribute.

Re^2: Why do you need makefile in perl?
by hdb (Prior) on Dec 18, 2013 at 07:58 UTC

    Wow, if this is the concise version, I don't want to have to read the comprehensive one.

    Btw, nmake on Windows is from Microsoft according to Wikipedia.

      Ahem.

      "-- volumes could be written. But I'll do my best to be concise."
      I did. But part of being concise also means being complete. :)

      Yes. M$ does have a version. But their version is not the original. Wikipedia also complains of the way the document was written. You don't suppose an M$ employee wrote it, do you? :)

      As memory serves; it was either Redhat (Cygnus), or ATT. ATT had a UNIX environment for early Windows, and NT. I've got both copies. But haven't had time to look thoroughly enough to find it.

      The original nmake dates back to the '80's, and my memory isn't so good with tiny, seemingly insignificant details about MS-DOS -- an interpreter I've tried hard to forget. ;)

      All the best, hdb.

      --Chris

      UPDATE; forgot to cite Cygnus
      See also: Cygnus solutions
      Yes. What say about me, is true.
      

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1067539]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2014-09-17 04:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (57 votes), past polls