Sponsored Content
Top Forums Shell Programming and Scripting Building programs from separate makefiles Post 302759445 by Corona688 on Tuesday 22nd of January 2013 10:23:48 AM
Old 01-22-2013
One of the simpler ways to do this is recursive make:

Code:
outputfolder/outputfile:outputfolder/Makefile
        make -C outputfolder

which is equivalent to cd outputfolder ; make

This lets you call a makefile in another folder without having to incorporate it into your own lock, stock, and barrel.

make supports recursion directly, and will tell you how deep into recursion it is.
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Combining makefiles

I have concatenated 2 makefiles, to produce 1 however it is not running all of the code, producing a fatal error: symbol referencing errors. No output written. Can anybody please help? (4 Replies)
Discussion started by: Dan Rooney
4 Replies

2. UNIX for Dummies Questions & Answers

makefiles in a directory and subdirectories

I need to develop a makefile that spans across directories. For example, let's say i have an upper level directory (main) and about 2 subdirectories. I want my .cpp files and .o files to be in one subdirectory. I want my .a files to be in the other subdirectory. The .a files are made up of the... (0 Replies)
Discussion started by: benjie_asu
0 Replies

3. Shell Programming and Scripting

How can I print variables im using in makefiles?

for example in my make file im building path from env variables and string but need to see what is did what is the best way to print the result? say I have in my Makefile : exec_prefix = $(RUN_ENV_LOCAL)/apache and I will like to print the exec_prefix value , how can it be done ? (1 Reply)
Discussion started by: umen
1 Replies

4. UNIX for Advanced & Expert Users

makefiles

Solved........ (0 Replies)
Discussion started by: klam
0 Replies

5. UNIX for Dummies Questions & Answers

Are programs like sys_open( ) ,sys_read( ) et al examples of system level programs ?

Are the programs written on schedulers ,thread library , process management, memory management, et al called systems programs ? How are they different from the programs that implement functions like open() , printf() , scanf() , read() .. they have a prefix sys_open, sys_close, sys_read etc , right... (1 Reply)
Discussion started by: vishwamitra
1 Replies

6. Programming

Makefiles for different programs

I have several programs in several directories and want to use make to build the executables. What I have done is to put the main programs in their own directory together with a makefile to build the program. Then I am thinking of having another makefile residing in the directory above so I can run... (1 Reply)
Discussion started by: kristinu
1 Replies

7. Programming

Makefile for building multiple programs

I have the following part of a makefile and want to simplify it using rules rather than having to code the same two blocks when I need ti build another program. An having difficulty doing it all: 1dvel2 1dvel 2dvel ... (8 Replies)
Discussion started by: kristinu
8 Replies

8. Programming

First time programmer needs Help with Makefiles

I am trying to practice to create Makefiles. The goal is to create a makefile such that if a change is made to any of the source code files, the project can be rebuilt by typing make at the command line. I have the following files: ac.cc: has include ac.h and pg.h fr.cc: has main... (8 Replies)
Discussion started by: pintu1228
8 Replies

9. UNIX for Dummies Questions & Answers

Difference between inbuilt suid programs and user defined root suid programs under bash shell?

Hey guys, Suppose i run passwd via bash shell. It is a suid program, which temporarily runs as root(owner) and modifies the user entries. However, when i write a C file and give 4755 permission and root ownership to the 'a.out' file , it doesn't run as root in bash shell. I verified this by... (2 Replies)
Discussion started by: syncmaster
2 Replies

10. UNIX for Beginners Questions & Answers

Makefiles

Hi All, I was going through some makefiles where I saw occurrences of explib_subdirs and expinc_subdirs, which I could not understand. Exporting libs to subdirs ? Exporting include files to specified subdirs ? When do we need to do that ? What I could understand is, for a build, I would... (4 Replies)
Discussion started by: alltaken
4 Replies
CPANPLUS::Dist::MM(3pm) 				 Perl Programmers Reference Guide				   CPANPLUS::Dist::MM(3pm)

NAME
CPANPLUS::Dist::MM SYNOPSIS
$mm = CPANPLUS::Dist::MM->new( module => $modobj ); $mm->create; # runs make && make test $mm->install; # runs make install DESCRIPTION
"CPANPLUS::Dist::MM" is a distribution class for MakeMaker related modules. Using this package, you can create, install and uninstall perl modules. It inherits from "CPANPLUS::Dist". ACCESSORS
parent() Returns the "CPANPLUS::Module" object that parented this object. status() Returns the "Object::Accessor" object that keeps the status for this module. STATUS ACCESSORS
All accessors can be accessed as follows: $mm->status->ACCESSOR makefile () Location of the Makefile (or Build file). Set to 0 explicitly if something went wrong. make () BOOL indicating if the "make" (or "Build") command was successful. test () BOOL indicating if the "make test" (or "Build test") command was successful. prepared () BOOL indicating if the "prepare" call exited succesfully This gets set after "perl Makefile.PL" distdir () Full path to the directory in which the "prepare" call took place, set after a call to "prepare". created () BOOL indicating if the "create" call exited succesfully. This gets set after "make" and "make test". installed () BOOL indicating if the module was installed. This gets set after "make install" (or "Build install") exits successfully. uninstalled () BOOL indicating if the module was uninstalled properly. _create_args () Storage of the arguments passed to "create" for this object. Used for recursive calls when satisfying prerequisites. _install_args () Storage of the arguments passed to "install" for this object. Used for recursive calls when satisfying prerequisites. METHODS
$bool = $dist->format_available(); Returns a boolean indicating whether or not you can use this package to create and install modules in your environment. Sets up the "CPANPLUS::Dist::MM" object for use. Effectively creates all the needed status accessors. Called automatically whenever you create a new "CPANPLUS::Dist" object. "prepare" preps a distribution for installation. This means it will run "perl Makefile.PL" and determine what prerequisites this distribution declared. If you set "force" to true, it will go over all the stages of the "prepare" process again, ignoring any previously cached results. When running "perl Makefile.PL", the environment variable "PERL5_CPANPLUS_IS_EXECUTING" will be set to the full path of the "Makefile.PL" that is being executed. This enables any code inside the "Makefile.PL" to know that it is being installed via CPANPLUS. Returns true on success and false on failure. You may then call "$dist->create" on the object to create the installable files. $href = $dist->_find_prereqs( file => '/path/to/Makefile', [verbose => BOOL]) Parses a "Makefile" for "PREREQ_PM" entries and distills from that any prerequisites mentioned in the "Makefile" Returns a hash with module-version pairs on success and false on failure. $bool = $dist->create([perl => '/path/to/perl', make => '/path/to/make', makeflags => 'EXTRA=FLAGS', prereq_target => TARGET, skiptest => BOOL, force => BOOL, verbose => BOOL]) "create" creates the files necessary for installation. This means it will run "make" and "make test". This will also scan for and attempt to satisfy any prerequisites the module may have. If you set "skiptest" to true, it will skip the "make test" stage. If you set "force" to true, it will go over all the stages of the "make" process again, ignoring any previously cached results. It will also ignore a bad return value from "make test" and still allow the operation to return true. Returns true on success and false on failure. You may then call "$dist->install" on the object to actually install it. $bool = $dist->install([make => '/path/to/make', makemakerflags => 'EXTRA=FLAGS', force => BOOL, verbose => BOOL]) "install" runs the following command: make install Returns true on success, false on failure. $bool = $dist->write_makefile_pl([force => BOOL, verbose => BOOL]) This routine can write a "Makefile.PL" from the information in a module object. It is used to write a "Makefile.PL" when the original author forgot it (!!). Returns 1 on success and false on failure. The file gets written to the directory the module's been extracted to. perl v5.12.1 2010-04-26 CPANPLUS::Dist::MM(3pm)
All times are GMT -4. The time now is 08:31 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy