-
May 18th, 2013, 05:38 PM
#1
calling a script from a makefile
Hello,
As advertized, I would like to call a script from a makfile to glean some information about the OS. What I more or less need is the OS name and version (CentOS-5.9, OPENSUSE-12.2, Cygwin, etc). I think I can get the rest of what I need from uname. The OS name and version doesn't seem to reside in any consistent place over the various Linux flavors. I also need to get the version of the gnu c compiler, since I think that may also require a bit more involved scripting than I would like to try out of make.
The main question is weather I can call a script out of make and have it return a value for a variable.
Something like,
OS := $(shell ./script_name)
Thanks,
LMHmedchem
-
May 19th, 2013, 05:50 PM
#2
Re: calling a script from a makefile
Well I was able to get this working,
in makefile,
OS_NAME:=$(shell ./find_OS_NAME.sh)
in bash script find_OS_NAME.sh,
Code:
# script to find the OS distribution and version
# get the general OS type
TYPE_NAME=$(uname -s)
# for windows cygwin versions
if [ $TYPE_NAME = "CYGWIN_NT-5.1" ]
then
OS_NAME=$TYPE_NAME
fi
# for linux versions
if [ $TYPE_NAME = "Linux" ]
then
# this works for CentOS but will need to be tested for other OS versions
OS_DIST=$(cat /etc/*-release | cut -d ' ' -f 1)
OS_VER=$(cat /etc/*-release | cut -d ' ' -f 3)
OS_NAME=$OS_DIST'_'$OS_VER
fi
# output name and version found
echo $OS_NAME
The OS_NAME value is used to create an OS specific build directory.
ARCH := $(shell uname -m)
KERN := $(shell uname -r | cut -d. -f 1,2)
OS_NAME:=$(shell ./find_OS_NAME.sh)
# create a build directory name based on the local environment
BDIR := bld_$(OS_NAME)_$(KERN)_$(ARCH)_$(FCOMP)_$(CC)_$(ver)
$(shell mkdir -p $(BDIR))
Does anyone see anything blatantly wrong with the approach?
LMHmedchem
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|