Conditional Compilation based on Environmental Variable in Unix


 
Thread Tools Search this Thread
Top Forums Programming Conditional Compilation based on Environmental Variable in Unix
# 1  
Old 05-07-2009
Conditional Compilation based on Environmental Variable in Unix

I want to be able to access an environment variable to control how a program is compiled.
So:
export MY_VERSN=9

Then ideally, within my C++ code, I would have

#if MY_VERSN = 9
iret = FRED9()
#else
iret = FRED()
#endif

The way I thought I could do it is that in the script that sets up the environmental variable MY_VERSN (which I need in any case) , I could also create an include file fred.h containing

#define MY_VERSN 9

and then include fred.h in my C++ code.

I think that my requirement to conditionally compile based on an env variable must be a common one; so I'd be grateful for sugestions on how it is usually achieved. Thanks
# 2  
Old 05-07-2009
Apologies for answering my own question but I think that this is probably a reasonable solution:

Suppose you have an "env var" MY_VERSN

export MY_VERSN=9

In the makefile you can access this as $$MY_VERSN

and add a complier flag

-DMYVER=$$MY_VERSN

Then in the C++ code you can put

#if MYVERSN == 9
iret = routine_A()
#else
iret = routine_B()
#endif

Sorry if I have taken up anyones time.
# 3  
Old 05-07-2009
It depends on how large the code base is and also a matter of personal style. For small programs I just plug in the preprocessor stuff into the source code itself and for large ones I use a header file but anyways you have indeed answered your own question Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue with cron and environmental variable

My shell script it.sh.I am calling bip.sh from it.sh #!/bin/sh ORACLE_HOME=/var/opt/oracle/product/10g; export ORACLE_HOME PATH=$PATH:$ORACLE_HOME/bin:/bin:/usr/bin; export PATH today=`date "+%m-%d-%Y %H:%M:%S"`; export today CUR_DIR=$1; export CUR_DIR LOG_FILE=$CUR_DIR/error.log;... (4 Replies)
Discussion started by: rafa_fed2
4 Replies

2. Shell Programming and Scripting

Clearing a environmental variable

i set a variable from the command line: export GANG="james,roy,martin" i can access this variable ($GANG) from a script. but each time i run the script, the variable keeps getting bigger. more info keeps getting added to it. Is there anyway i can make the $GANG variable contain the... (3 Replies)
Discussion started by: SkySmart
3 Replies

3. UNIX for Advanced & Expert Users

Environmental variable

i want to set environmental variables in solaris and redhat. it should show the current directory and the default shell should be bourne shell. along with it should show the hostname.. like this hostname{/home/vipin/data}# ifconfig Thanks in advanced.:wall: Please use code tags.... (1 Reply)
Discussion started by: vipinkumarr89
1 Replies

4. Shell Programming and Scripting

Setting Environmental Variable

I have a request from a programmer to set an env variable for him. I know how to do it for bash shell by adding the following line to .bash_profile export $VAR=/home/code/project/ But this will be applicable only when he is in his bash shell. What is the procedure to be followed to make... (2 Replies)
Discussion started by: Tuxidow
2 Replies

5. Shell Programming and Scripting

How to get the value of a variable which is having another value in environmental script?

Dear Folks, I am facing an issue in getting a value of a variable.Let me explain the scenario. I am having a list file say files.list in which I have mentioned 1 FILE1 2 FILE2 Then I am having an set_env.ksh in which I mentioned FILE1=/clocal/data/user/userdata.txt... (4 Replies)
Discussion started by: dinesh1985
4 Replies

6. UNIX for Dummies Questions & Answers

How does the PATH environmental variable work?

Hello. I have a question about how the PATH environment variable works. I wrote a script in $HOME/bin/gvim. I want it to be called instead of /usr/bin/gvim, so I've placed it before in the PATH. However, it is still the old one that is found. If I open an other terminal, I have the... (6 Replies)
Discussion started by: qwer
6 Replies

7. Shell Programming and Scripting

setting ksh environmental variable

Hi, I have problem setting up environmental variables. The idea is to start with main.ksh script that will run setting.ksh, and in side of it I'll set up variables. Please take a look at my code, and help me to find my mistake. Thanks, Mila Main.ksh look like this: #!/usr/bin/ksh #... (2 Replies)
Discussion started by: mefquik
2 Replies

8. UNIX for Advanced & Expert Users

Makefile conditional compilation giving error

Hi , Please answer my query: I want to create a common make file for one of mylibrary such that it should work on both Sun as well as Linux on 32 and 64 bit system. The flow is sth like this: .............. .............. if$(OS) == solaris BINDIR= ../../lib/solaris/64 else BINDIR=... (1 Reply)
Discussion started by: unisuraj
1 Replies

9. Programming

question on conditional compilation

Hey, can I #define something outside the source file ? I have a C program which uses #ifdef.. #ifdef ABC ... do this.. #else ... that ... #endif The usual way that I know of defining ABC is in the source/header file #define ABC But is there any other way to do that ? Maybe as... (2 Replies)
Discussion started by: the_learner
2 Replies

10. Shell Programming and Scripting

Environmental Variable

Hi, I'm exporting an environmental variable from a C program using putenv function. I'm calling the exe of the C program from shell script. But when I display the environmental variables from the Shell script, My varaible is not getting displayed. Can anyone please tell me how to get it in... (2 Replies)
Discussion started by: janemary.a
2 Replies
Login or Register to Ask a Question