Sponsored Content
Top Forums Programming Makefile for building multiple programs Post 302772144 by Unitsirk on Saturday 23rd of February 2013 01:11:00 PM
Old 02-23-2013
The problem is that I do not want to combine the targets into one. Now I have another makefile like this. A problem I have is that the makefile
is not printing anything when building the targets.

Code:
# Fortran linker
FLINKER = gfortran

# Fortran compiler
FCOMPILER = gfortran

MAINDIR = ../../../libs/main
MISC_MAINDIR = $(MAINDIR)/misc
OBJDIR = ../release/obj
BINDIR = ../release/bin

MISC_INCLUDE = $(MISC_MAINDIR)/ray.par

LDFLAGS :=
CFLAGS_INC :=
CFLAGS := -g -Wall $(CFLAGS_INC)

# SOURCE FILES
SRCS := $(wildcard $(MISC_MAINDIR)/*.f)
SRCNAMES :=  $(notdir $(SRCS))

# OBJECT FILES
OBJS = $(subst .f,.o,$(subst $(MISC_MAINDIR),$(OBJDIR),$(SRCS)))
OBJNAMES :=  $(patsubst %.f,%,$(notdir $(OBJS)))

# LIST OF MISC EXECUTABLES
TARGETS = $(patsubst %.f,%,$(subst $(MISC_MAINDIR),$(BINDIR),$(SRCS)))
TARGETNAMES :=  $(patsubst %.f,%,$(notdir $(TARGETS)))

all : $(OBJS) $(TARGETS)

$(TARGETS) : 
    for T in $(TARGETNAMES) ; do \
      $(FCOMPILER) -o $(BINDIR)/$$T $(OBJDIR)/$$T.o ; \
    done

$(OBJDIR)/%.o : $(MISC_MAINDIR)/%.f $(MISC_MAINDIR)/ray.par
    $(FCOMPILER) -c $<
    mv *.o $(OBJDIR)

 

10 More Discussions You Might Find Interesting

1. Programming

makefile for programs using libraries loaded at runtime

Hi everybody! I would like to set in the makefile a path that should be the path where the program searches for the libraries loaded at run time. Is there such a variable to be set in makefile? Thanks in advance! (1 Reply)
Discussion started by: nadiamihu
1 Replies

2. Shell Programming and Scripting

building output file from multiple input files

Hi there, I am trying to figure out a way to combine multiple sources with different data on a single file, and I am trying to find the best way to do it. I have multiple files, let's say A, B, C and D. A has a field in common with B, B has a field in common with C, and C has a field in... (2 Replies)
Discussion started by: ppucci
2 Replies

3. Shell Programming and Scripting

How to change a Makefile from building static library to shared library?

Hi: I have a library that it only offers Makefile for building static library. It built libxxx.a file. How do I in any way build a shared library? (either changin the Makefile or direct script or command to build shared library) Thanks. (1 Reply)
Discussion started by: cpthk
1 Replies

4. UNIX for Dummies Questions & Answers

epstopdf for multiple files using makefile

Greetings! I'm fairly new to the unix world and I hope someone here can help me with my question. I'm using a Makefile to run a few programs and the final output is several .eps files. However I need them to be .pdf files, so I want to use epstopdf to convert the files. Since I'm already... (6 Replies)
Discussion started by: wwoord
6 Replies

5. Shell Programming and Scripting

Multiple script lines into a Makefile

Hi All I am creating a makefile and I want to do a clean section. In the clean section I would like to check if the file exists and then delete it. I always have an error 'unexpected end of file' What's wrong in it? Thanks msntn firstCpp: first.cpp g++ -o first first.cpp clean: ... (1 Reply)
Discussion started by: manustone
1 Replies

6. UNIX for Advanced & Expert Users

makefile head-scratcher: multiple targets in one go

Hi! I've got a build process where scripts create multiple targets from their sources. But here I'm running into a conceptual problem of GNU make: If one has multiple targets in a dependency, make applies the rules once for every target that is out of sync - which is correct for normal... (3 Replies)
Discussion started by: treczoks
3 Replies

7. Shell Programming and Scripting

Run multiple python programs sequentially.

I HAVE WRITTEN NINE PYTHON CODES TO PERFORM A TASK ........ I WISH TO RUN THEM SEQUENTIALLY. eg. code1__code2 >>>>>>>>code9.py TO GET DESIRED OUTPUT. PLS HELP ME WRITTING SHELL SCRIPT .. I HAVE TO DISTRIBUTE THESE CODE FOR BEING USED BY OTHERS. (2 Replies)
Discussion started by: upvan111
2 Replies

8. Shell Programming and Scripting

Building programs from separate makefiles

I have several makefiles to build various programs in a software suite (currently 4 programs). I want to create a main Makefile so that I can build everything I need. Unsure on the way I should proceed, for example using include fdtc.mk or calling $(MAKE) -f ./mk/Makefile nfdtc Here... (15 Replies)
Discussion started by: kristinu
15 Replies

9. Shell Programming and Scripting

Help: Makefile with multiple executables

I am trying to create executables for the following files Currently, I am making 9 different directories for for each. I would like to make 1 directory but everytime I try it does not work. CROSS_COMPILE?= # CROSS_COMPILE used to = arm-arago-linux-gnueabi... (1 Reply)
Discussion started by: bpetersen
1 Replies

10. Shell Programming and Scripting

Makefile with multiple executables

CROSS_COMPILE?= LIBDIR_APP_LOADER?=../../../../app_loader/lib INCDIR_APP_LOADER?=../../../../app_loader/include BINDIR?=../../bin CFLAGS+= -Wall -I$(INCDIR_APP_LOADER) -D__DEBUG -O2 -mtune=cortex-a8 -march=armv7-a -std=gnu99 LDFLAGS+=-L$(LIBDIR_APP_LOADER) -lprussdrv -lpthread OBJDIR=obj... (1 Reply)
Discussion started by: bpetersen
1 Replies
STYLE.MAKEFILE(5)					      BSD File Formats Manual						 STYLE.MAKEFILE(5)

NAME
style.Makefile -- FreeBSD Makefile file style guide DESCRIPTION
This file specifies the preferred style for makefiles in the FreeBSD source tree. o All makefiles should have an SCM ID at the start of the file, followed by a blank line. # $FreeBSD$ o .PATH: comes next if needed, and is spelled ``.PATH: '', with a single ASCII space after a colon. Do not use the VPATH variable. o Special variables (i.e., LIB, SRCS, MLINKS, etc.) are listed in order of ``product'', then building and installing a binary. Special variables may also be listed in ``build'' order: i.e., ones for the primary program (or library) first. The general ``product'' order is: PROG/[SH]LIB/SCRIPTS FILES LINKS [NO_]MAN MLINKS INCS SRCS WARNS CFLAGS DPADD LDADD. The general ``build'' order is: PROG/[SH]LIB/SCRIPTS SRCS WARNS CFLAGS DPADD LDADD INCS FILES LINKS [NO_]MAN MLINKS. o Omit SRCS when using <bsd.prog.mk> and there is a single source file named the same as the PROG. o Omit MAN when using <bsd.prog.mk> and the manual page is named the same as the PROG, and is in section 1. o All variable assignments are spelled ``VAR='', i.e., no space between the variable name and the =. Keep values sorted alphabetically, if possible. o Do not use += to set variables that are only set once (or to set variables for the first time). o Do not use vertical whitespace in simple makefiles, but do use it to group locally related things in more complex/longer ones. o WARNS comes before CFLAGS, as it is basically a CFLAGS modifier. It comes before CFLAGS rather than after CFLAGS so it does not get lost in a sea of CFLAGS statements as WARNS is an important thing. The usage of WARNS is spelled ``WARNS?= '', so that it may be overridden on the command line or in make.conf(5). o ``NO_WERROR= yes'' should not be used, it defeats the purpose of WARNS. It should only be used on the command line and in special cir- cumstances. o CFLAGS is spelled ``CFLAGS+= ''. o Listing -D's before -I's in CFLAGS is preferred for alphabetical ordering and to make -D's easier to see. The -D's often affect condi- tional compilation, and -I's tend to be quite long. Split long CFLAGS settings between the -D's and -I's. o Do not use GCCisms (such as -g and -Wall) in CFLAGS. o Typically, there is one ASCII tab between VAR= and the value in order to start the value in column 9. An ASCII space is allowed for variable names that extend beyond column 9. A lack of whitespace is also allowed for very long variable names. o .include <bsd.*.mk> goes last. o Do not use anachronisms like $< and $@. Instead use ${.IMPSRC} or ${.ALLSRC} and ${.TARGET}. o To not build the ``foo'' part of the base system, use NO_FOO, not NOFOO. o To optionally build something in the base system, spell the knob WITH_FOO not WANT_FOO or USE_FOO. The latter are reserved for the FreeBSD Ports Collection. o For variables that are only checked with defined(), do not provide any fake value. The desire to express a logical grouping often means not obeying some of the above. EXAMPLES
The simplest program Makefile is: # $FreeBSD$ PROG= foo .include <bsd.prog.mk> The simplest library Makefile is: # $FreeBSD$ LIB= foo SHLIB_MAJOR= 1 MAN= libfoo.3 SRCS= foo.c .include <bsd.lib.mk> SEE ALSO
make(1), make.conf(5), style(9) HISTORY
This manual page is inspired from the same source as style(9) manual page in FreeBSD. BUGS
There are few hard and fast style rules here. The style of many things is too dependent on the context of the whole makefile, or the lines surrounding it. BSD
January 8, 2005 BSD
All times are GMT -4. The time now is 01:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy