We have moved our OS from Sun Solaris to Linux and also some of the compilers.
Our old makefile used to be as below:
Can you please let me know how to create one using g++ compiler?
I tried different things but getting an error.
Thanks
Shash
Last edited by Don Cragun; 06-02-2016 at 05:28 PM..
Reason: Change HTML tags to CODE tags.
Your makefile is specifying that the compiler is to be used to compile code to run on Solaris systems and is telling the compiler to predefine the macro SunOS before compiling any of the source files used to build your project.
If you are hoping to build your project on a Linux system creating object files that will run on Solaris/SunOS systems, I don't think that will work unless Linux has recently added some cross-compilation environments that I have seen advertised.
If you are hoping to build your project to run on a Linux system as well as to be built on a Linux system, you will need to examine each of the source files in your project to find out what macros need to be predefined so that they will build correctly in your specific Linux environment instead of in the Solaris/SunOS environment your makefile specifies. If your code does not have #ifdef statements to select appropriate alternatives to SunOS specific segments of your code, you will need to modify those source files to #ifdef code in for your new environment and add the macros that your modified source uses by changing the line in your makefile from:
to instead define the macros your sources files expect when building your project to run in your specific Linux environment as well as changing the two lines at the top of your makefile:
to:
and set FLAGS to whatever options are appropriate for gcc in your environment for the type of code you're trying to build.
Thanks for the reply Don Cragun. Apologies, I 'm not into C programming.
The code does have #ifdef in one of the .c file. Can you please let me know how to determine the flags/macros to be used.
knowing complete details about the environment in which you plan to build your software,
and complete details about the environment(s) in which you plan to run your software.
If your source code is depending on Solaris C library features and doesn't already include #ifdefs to use alternative glibc interfaces for general Linux systems or distribution specific libraries for the particular Linux system(s) you have decided to use instead of Solaris/SunOS, just changing macros in your makefile is not going to work. You have to actually write C source code that will work in your new, different environment(s).
Hey everybody,
This may be stup*d question for you, but i am new in unix and i wonder how can i make the rules for translating and linking my .c "primjer1.c", "primjer2.c" and "primjer3.c" in makefile.
Thank you. (7 Replies)
Dear all,
I have a quite simple question about how to manipulate "makefile.am". I intend to:
1. "CFLAGS" and "CXXFLAGS" have no value at all. I know that these values get "-g -O2" by default. On the other hand, when I try to set them as "CFLAGS = " in "makefile.am", I get warning messages... (4 Replies)
I'm really confused how to use a makefile.
Are you supposed to be make a file from emacs called MakeFile and put code in there to compile?
I am trying to create a makefile to compile two .cpp files in my current directory to produce two .o files and then link them...
What I did was make a... (1 Reply)
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
I have been trying to make the program swap but i have been getting errors with the makefile such as
driver.o:... (1 Reply)
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
Basically, the prompt is make a makefile with various sub makefiles in their respective subdirectories. All code... (1 Reply)
I have 2 libraries in 2 different directories that I build with Makefiles.
library B depends on library A. If I modify a .cpp file in library A and run lib B's Makefile can I have B's makefile to automatically rebuild library A?
I am now rebuilding A, followed by B... but I'd like B to... (0 Replies)
Hi, I'm trying to run the module load command in a Makefile and i'm getting the following error:
make: module: command not found
Why is this? Is there any way to run this command in a Makefile?
NOTE: command - module load msjava/sunjdk/1.5.0 works fine outside of the Makefile (2 Replies)
I am new to creating makefiles.
I have several fortran programs in a folder called as "test" and also have several subroutines in another folder (which is inside this test folder) called as libry
My makefile is in the folder "test"
I want to create a makefile which can access the files in... (2 Replies)
Hi,
What I want to do is for make to reconstruct the target even if its dependencies have not changed. So, even if if the dependent files do not have a more recent timestamp, the commands are executed.
The reason I want to do this..
1)someone executes make on solaris. We have a solaris... (4 Replies)