Sponsored Content
Top Forums Programming Makefile instructions to create directories (CentOS7 , GNU Make 3.82) Post 303043481 by LMHmedchem on Wednesday 29th of January 2020 12:37:43 PM
Old 01-29-2020
Quote:
Originally Posted by disedorgue
Another error that maybe explain why not work when to declare archdir before TESTDIR :
Code:
TESTDIR := ./test/$(OS)_$(KERN).$(ARCH)_$(CNAME)_$(FNAME)_$(ver)

So I wasn't expanding the components variables of TESTDIR correctly? I guess I should have at least noticed the TESTDIR was not being assigned using the same operator as BDIR.

I have tried now to use a similar method to copy files into the newly created directories and am having more issues. It seems to me as if the following code,
Code:
# create name for test directory
TESTDIR = ./test/$(OS)_$(KERN).$(ARCH)_$(CNAME)_$(FNAME)_$(ver)
# mkdir if the directory does not exist
${TESTDIR}:
    @mkdir -p ${TESTDIR}

overwrites the original value of TESTDIR which is,

./test/$(OS)_$(KERN).$(ARCH)_$(CNAME)_$(FNAME)_$(ver)

with the mkdir instruction such that if you printed ${TESTDIR} after the
second assignment, it would print,

mkdir -p ./test/$(OS)_$(KERN).$(ARCH)_$(CNAME)_$(FNAME)_$(ver)

with the variables such as $(OS) expanded. This would mean that you could no longer use $(TESTDIR) to refer to the location that was originally assigned.

Is this true or am I not understanding how this is working?

LMHmedchem
 

10 More Discussions You Might Find Interesting

1. Programming

about create Makefile

hello! i want to create a Makefile on the freebsd 4.5,so i vi the hello.c #include int main(int argc, char** argv) { printf(''Hello, GNU!\n''); return 0; } #autoscan #cp configure.scan configure.in #vi configure.in modify:AC_OUTPUT AC_OUTPUT(Makefile) #aclocal #autoconf... (0 Replies)
Discussion started by: mzp
0 Replies

2. UNIX for Dummies Questions & Answers

make and clean in a single rule in the makefile.

Hi, This stems from the following thread https://www.unix.com/showthread.php?t=18299 I have a makefile which makes either executables or a shared library. i.e. make -f unix.mak will create the executables and make -f unix.mak libolsv will create the shared library. Since these have to be... (4 Replies)
Discussion started by: vino
4 Replies

3. Shell Programming and Scripting

check if multiple directories exist else create missing directories

Hi , I 'm trying to check if multiple directories exist on a server, if not create the missing ones and print " creating missing directory. how to write this in a simple script, I have made my code complex if ; then taskStatus="Schema extract directory exists, checking if SQL,Count and... (7 Replies)
Discussion started by: ramky79
7 Replies

4. Programming

A question about Makefile run by GNU make

Hello everybody, Currently I'm learning how to build projects (C programming) with GNU make. I have a problem with one Makefile and I would appreciate if you could kindly give me a hand. Here is the environment: OS: Redhat linux 5 compiler: gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)... (2 Replies)
Discussion started by: dariyoosh
2 Replies

5. Shell Programming and Scripting

automake does not create Makefile.in

hi all, I have written a simple C program hello.c and a Makefile.ac but when i try to run automake it does not create Makefile.in hence I am not able to run ./configure command in my directory. Following are the containts of my prog. hello.c -------- Code: #include<stdio.h> main() {... (0 Replies)
Discussion started by: useless79
0 Replies

6. Shell Programming and Scripting

Need help with a script to make makefile

How do we create a shell script that creates a makefile? what if we want to use the #include header files too? (2 Replies)
Discussion started by: sslokhan
2 Replies

7. Programming

Makefile No rule to make target

I am trying to create a makefile to build a program and am getting the following error: make -f tsimplex.mk make: *** No rule to make target `/main/tsimplex_main.cpp', needed by `tsimplex_main.o'. Stop. OPSYS = $(shell uname -s ) TARGET = tsimplex ROOTDIR = ../../.. GTSDIR =... (1 Reply)
Discussion started by: kristinu
1 Replies

8. Shell Programming and Scripting

Bash script from makefile - it is called each time i call make

I've created a tag in the makefile: mytag: $(shell ${PWD}/script.sh) When i do: make clean - the script is executed When i perform make or make mytag the script is again executed with the output: make: Nothing to be done for mytag What i want ? I want script.sh to be executed only... (0 Replies)
Discussion started by: Pufo
0 Replies

9. Homework & Coursework Questions

Create Makefile from source files

1. The problem statement, all variables and given/known data: Create a makefile for a set of source files. Several sources files are given but we are not allowed to modify them. 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... (5 Replies)
Discussion started by: pintu1228
5 Replies

10. Solaris

SunOS 5.5.1 usage of Makefile command in make file

I am new to Solaris and compilation using make files. I have a code base which is organized into different folders. At the root folder is a master make file and in the sub directories, there are make files for that particular folder. In the make files present in subdirectories, I am seeing... (2 Replies)
Discussion started by: rajujayanthy
2 Replies
AIMK(1PVM)							  PVM Version 3.4							AIMK(1PVM)

NAME
aimk - Portable make wrapper script SYNOPSIS
aimk [ -here ] [ make arguments ] DESCRIPTION
aimk is a wrapper program for make, used to portably select options to build PVM and PVM applications on various machines. Each port of PVM is assigned an architecture name. The name is used both during compilation (to conditionally switch in code) and at runtime (to select an executable or host). aimk uses the value of environment variable $PVM_ARCH if it is set, otherwise it calls $PVM_ROOT/pvmgetarch to determine the architecture name. pvmgetarch is a script that sniffs at various parts of the system to determine the correct architecture name. It is updated as new PVM ports are defined, and can be augmented locally. aimk determines the machine architecture and execs make, passing it the architecture and a configuration file along with arguments supplied to aimk. It runs make in a subdirectory to prevent executables from becoming intermixed and to permit overlapping compiles. A different makefile can be placed in each subdirectory or a single makefile, Makefile.aimk, can be shared between architectures. Per-architecture definitions from the $PVM_ROOT/conf directory are appended to the common makefile. aimk calls make is called in one of three ways, depend- ing on what makefiles are present: i. If $PVM_ARCH/Makefile or $PVM_ARCH/makefile exists, change directory to $PVM_ARCH and exec make there: (cd $PVM_ARCH ; make PVM_ARCH=$PVM_ARCH < aimk args >) ii. Else if Makefile.aimk exists, create $PVM_ARCH directory if it doesn't exist, then: (cd $PVM_ARCH ; make -f $PVM_ROOT/conf/$PVM_ARCH.def -f ../Makefile.aimk PVM_ARCH=$PVM_ARCH < aimk args >) iii. Else just exec make in current directory: make PVM_ARCH=$PVM_ARCH < aimk args > If aimk succeeds in calling make, the exit status is that of make, otherwise it is 1. FLAGS
-here Forces aimk to run make in the current directory, e.g. converts case i. to case iii. EXAMPLES
The following Makefile.aimk file builds and installs hello, creating the PVM binary directory if it doesn't exist. It can be run concur- rently on machines of different types, sharing the same source directory. LDIR = -L$(PVM_ROOT)/lib/$(PVM_ARCH) PVMLIB = -lpvm3 SDIR = .. BDIR = $(HOME)/pvm3/bin XDIR = $(BDIR)/$(PVM_ARCH) CFLAGS = -g -I$(PVM_ROOT)/include LIBS = $(LDIR) $(PVMLIB) $(ARCHLIB) $(XDIR): - mkdir $(BDIR) $(XDIR) hello: $(SDIR)/hello.c $(XDIR) $(CC) $(CFLAGS) -o $@ $(SDIR)/$@.c $(LIBS) mv $@ $(XDIR) ENVIRONMENT
$PVM_ROOT Root path of PVM installation. $PVM_ARCH PVM architecture name for machine. FILES
$PVM_ROOT/lib/aimk The aimk program $PVM_ROOT/conf/$PVM_ARCH.def Arch config file SEE ALSO
pvm_intro(1PVM) 02 May, 1994 AIMK(1PVM)
All times are GMT -4. The time now is 12:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy