Sponsored Content
Top Forums UNIX for Dummies Questions & Answers make and clean in a single rule in the makefile. Post 70159 by vino on Tuesday 26th of April 2005 01:01:03 PM
Old 04-26-2005
make and clean in a single rule in the makefile.

Hi,

This stems from the following thread https://www.unix.com/shell-programming-and-scripting/18299-makefile-not-taking-d-flags.html

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 made i.e both executable and the shared library, I need to make the executables and then a clean ( make -f unix.mak cleanobj) and then make the shared library.

But I want to avoid the intermediate step of make -f unix.mak clean; i.e. the user should not do it explicitly. Is there any way I can include it in the rule for the shared library.

This is what I have.

Code:
SO              = SvSocket.o SvStmt.o SvOdbcWrapper.o \
                  OdbcCallReader.o MgrCalls.o OdbcSvProxy.o

$(EXE1): $(EXE) $(O1)
        g++ $(CFLAGS) -o $(EXE1) $(O1)

$(EXE): $(O) *.h
        $(CC) -o $(EXE) $(O)

OdbcSvApp.o: OdbcSvApp.cpp
        $(CC) -DODBCSV_SO OdbcSvApp.cpp -c -o OdbcSvApp.o

$(DAEMON_SO): OdbcSvApp.o $(SO) *.h
        $(CC) -shared -export-dynamic -DODBCSV_SO -o $(DAEMON_SO) OdbcSvApp.o $(SO) 
        @echo $(DAEMON_SO) has been built.

cleanobj::
        -$(RM) *.o

This is what I have tried:
Code:
$(DAEMON_SO): OdbcSvApp.o $(SO) *.h
        -make -f unix.mak cleanobj
        $(CC) -shared -export-dynamic -DODBCSV_SO -o $(DAEMON_SO) OdbcSvApp.o $(SO)

and also this
Code:
$(DAEMON_SO): OdbcSvApp.o $(SO) *.h
        -$(RM) *.o
        $(CC) -shared -export-dynamic -DODBCSV_SO -o $(DAEMON_SO) OdbcSvApp.o $(SO)

and I get the following error in both the cases:

gcc: OdbcSvApp.o: No such file or directory
gcc: SvSocket.o: No such file or directory
gcc: SvStmt.o: No such file or directory
gcc: SvOdbcWrapper.o: No such file or directory
gcc: OdbcCallReader.o: No such file or directory
gcc: MgrCalls.o: No such file or directory
gcc: OdbcSvProxy.o: No such file or directory
make: *** [libolsv20.so] Error 1

So how do I get around this. I want to include the clean rule in $(DAEMON_SO)

Vino
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Clean file in single action

What one finds challenging another finds simple... (HPUX B.11.11) I have a text file named something like 12345.dst that could look like this: DOG CAT NONE TEST CAT What I want to end up with is 12345.dst looking like this: CAT DOG TEST removing "NONE" should it be there and... (1 Reply)
Discussion started by: djp
1 Replies

2. Shell Programming and Scripting

To make sure I don't violate rule #7

I am hoping to find out if it is possible to use some sort of UNIX programming/scripting tools to solve a problem I have with reformatting email messages that are sent out of my IBM UNIX (AIX) system. I'm thinking some advanced awk/sed may work I do not have the time or the ability to do this... (6 Replies)
Discussion started by: toddk
6 Replies

3. Shell Programming and Scripting

Makefile rule being skipped

I can't seem to get a rule in my Makefile to ever run... even if I change the rule to force make to re-enter the rule, or if I change the dependent files the rule depends on. Any ideas why the second rule is being ignored here? #MAKEFILES = $(DIRS:%=$(ROOT)/%/Makefile) #$(MAKEFILES):... (0 Replies)
Discussion started by: foureightyeast
0 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. Programming

Issue with make, no rule to make target etc.

I have been trying to split up my src directory to clear out files that are not re-compiled very often. Now I have the following setup in my trunk, trunk/bld trunk/src/ trunk/src/src_server trunk/makefile.linux In the make file, I have compile rules SOURCELOC = src # compile src c++... (4 Replies)
Discussion started by: LMHmedchem
4 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. UNIX for Dummies Questions & Answers

Defining a new suffix rule in a Makefile

Hi everybody, I have a Makefile where a single suffix rule is defined: .SUFFIXES: .cpp .cpp.o: ${CXX} ${CXXFLAGS} -c -o $@ $< And I'd like to create another where an additional flag is added to compile in SMP. Right now, I have to do it like this: interface-smp.o:... (2 Replies)
Discussion started by: Zel2008
2 Replies

8. 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

9. Shell Programming and Scripting

Default rule to be executed in makefile

Hi all, I want to know the entry point (default rule to be executed) in a makefile once all defined variables are evaluated. I do not have all: in my makefile and I give "make" without any parameter in command line. thanks........ (3 Replies)
Discussion started by: useless79
3 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
PYTHON-CONFIG(1)					      General Commands Manual						  PYTHON-CONFIG(1)

NAME
python-config - output build options for python C/C++ extensions or embedding SYNOPSIS
python-config [ --prefix ] [ --exec-prefix ] [ --includes ] [ --libs ] [ --cflags ] [ --ldflags ] [ --help ] DESCRIPTION
python-config helps compiling and linking programs, which embed the Python interpreter, or extension modules that can be loaded dynamically (at run time) into the interpreter. OPTIONS
--cflags print the C compiler flags. --ldflags print the flags that should be passed to the linker. --includes similar to --cflags but only with -I options (path to python header files). --libs similar to --ldflags but only with -l options (used libraries). --prefix prints the prefix (base directory) under which python can be found. --exec-prefix print the prefix used for executable program directories (such as bin, sbin, etc). --help print the usage message. EXAMPLES
To build the singe-file c program prog against the python library, use gcc $(python-config --cflags --ldflags) progr.cpp -o progr.cpp The same in a makefile: CFLAGS+=$(shell python-config --cflags) LDFLAGS+=$(shell python-config --ldflags) all: progr To build a dynamically loadable python module, use gcc $(python-config --cflags --ldflags) -shared -fPIC progr.cpp -o progr.so SEE ALSO
python (1) http://docs.python.org/extending/extending.html /usr/share/doc/python/faq/extending.html AUTHORS
This manual page was written by Johann Felix Soden <johfel@gmx.de> for the Debian project (and may be used by others). November 27, 2011 PYTHON-CONFIG(1)
All times are GMT -4. The time now is 10:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy