Sponsored Content
Top Forums Shell Programming and Scripting Building programs from separate makefiles Post 302760649 by kristinu on Thursday 24th of January 2013 11:02:17 AM
Old 01-24-2013
Quote:
Originally Posted by Corona688
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.
I cannot quite understand how to use the above code

My directory structure is as below. The user uses Makefile. The makefile calls
the makefile for the specific program.

Code:
.
├── Makefile
└── mk
    ├── fdtc.mk
    ├── raypk.mk
    └── zslice.mk

Here is the code for Makefile

Code:
default: help

help : help-nfdtc help-nraypk help-xraypk help-xzslice 

help-nfdtc : 
    $(MAKE) -f fdtc.mk help

help-nraypk : 
    $(MAKE) -f raypk.mk help

help-xraypk : 
    $(MAKE) -f raypk.mk help

help-xzslice : 
    $(MAKE) -f zslice.mk help

list : list-nfdtc list-nraypk list-xraypk list-xzslice

list-nfdtc :
    $(MAKE) -f fdtc.mk list
    
list-nraypk :
    $(MAKE) -f raypk.mk list

list-xraypk :
    $(MAKE) -f raypk.mk list
    
list-xzslice :
    $(MAKE) -f zslice.mk list
    
#---------------------------------------------------------------------------------------------------

nfdtc :
    $(MAKE) -f fdtc.mk nfdtc

nraypk :
    $(MAKE) -f raypk.mk nraypk

xraypk :
    $(MAKE) -f raypk.mk xraypk

xzslice :
    $(MAKE) -f zslice.mk xzslice

#---------------------------------------------------------------------------------------------------

clean : clean-fdtc clean-raypk clean-zslice

clean-fdtc :
    make -f fdtc.mk clean

clean-raypk :
    make -f raypk.mk clean

clean-zslice :
    make -f zslice.mk clean

 

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
mdtool(1)						      General Commands Manual							 mdtool(1)

NAME
mdtool - MonoDevelop Application Runner SYNOPSIS
mdtool <applicationId> ... mdtool setup ... mdtool -q DESCRIPTION
mdtool is a tool that can execute head-less MonoDevelop applications, this can be used for example to do batch compilations without start- ing up the MonoDevelop GUI. USAGE
applicationId ... Runs the specified application. -q Lists available applications. Available Applications The list of applications returned by the option -q might be different depending on which add-ins are installed. gsetup Graphical add-in setup utility. build [options] [project-file] Project build tool. Use this tool to build any solution supported by MonoDevelop (eg. .mds, .sln). If no solution/project is speci- fied then it will pull the first solution it can find in the current directory. You can use this option to build packages in a head-less or batch fashion. Options -c , --configuration:CONFIGURATION Name of the solution configuration to build. -t , --target:TARGET Name of the target: Clean or Build -p , --project:PROJECT Name of the project to build. dbgen Parser database generation tool. project-export Project conversion tool. IDE The MonoDevelop IDE. generate-makefiles <solution-file> [--simple-makefiles] [-d:default-config] Makefile generator tool. This can be used to generate makefiles from any solution supported by MonoDevelop. Options --simple-makefiles , -s Generates set of Makefiles with the most common targets, and a configuration script that does a basic check of package dependencies. Default is to generate Makefile structure based on Autotools with the standard targets and configuration scripts. -d:default-config Configuration that the Makefile will build by default. Other configurations can be selected via the '--con- fig' or '--enable-*' option of the generated configure script. setup command [arg1, .., argn2] Runs the MonoDevelop add-in setup command. You must specify a command to execute. If none is provided a list of commands is dis- played Add-in Commands install (i) [package-name|package-file] Installs an add-in or set of addins. The command argument is a list of files and/or package names. If a package name is provided the package will be looked out in the registered repositories. A specific add- in version can be specified by appending it to. the package name using MonoDevelop.SourceEditor/0.9.1 uninstall (u) [package-name] Uninstalls an add-in. The command argument is the name of the add-in to uninstall. check-install (ci) Checks if a package is installed. If it is not, it looks for the package in the registered repositories, and if found the package is downloaded and installed, including all needed dependencies. update (up) Downloads and installs available updates for installed add-ins. list (l) Prints a list of all installed add-ins. list-av (la) Prints a list of add-ins available to install in the registered repositories. list-update (lu) Prints a list of available add-in updates in the registered repositories. Repository Commands rep-add (ra) url1 [url2 [url2]] Registers an add-in repository. Several URLs can be provided. rep-remove (rr) url1 [url2 [url2]] Unregisters an add-in repository. Several URLs can be provided. rep-update (ru) Updates the lists of addins available in all registered repositories. rep-list (rl) Shows a list of all registered repositories. Add-in Registry Commands: reg-update (rgu) Looks for changes in add-in directories and updates the registry. New add-ins will be added and deleted add-ins will be removed. reg-build (rgu) info [filename|package-name] Prints information about an add-in. Packaging Commands rep-build (rb) path Scans the provided directory and generates a set of index files with entries for all add-in packages found in the directory tree. The resulting file structure is an add-in repository that can be published in a web site or a shared directory. pack (p) file-path Creates an add-in package (.mpack file) which includes all files needed to deploy an add-in. The command parameter is the path to the add-in's configuration file. help (h) [command] Shows help for the given command Debug Commands: dump-file Prints the contents of a registry file for debugging. SEE ALSO
monodevelop(1), mono(1), mcs(1) COPYRIGHT
Copyright (C) 2007 Novell, Inc (http://www.novell.com) MAILING LISTS
Visit http://lists.ximian.com/mailman/listinfo/monodevelop-list for details. WEB SITE
Visit http://www.monodevelop.com for details mdtool(1)
All times are GMT -4. The time now is 08:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy