Sponsored Content
Top Forums Shell Programming and Scripting GNU make doesn't pick up changes Post 302524649 by pludi on Tuesday 24th of May 2011 06:32:34 AM
Old 05-24-2011
GNU make doesn't pick up changes

It's been a while since I had to write a Makefile, but I've managed to clobber this together:
Code:
SRC=module1.c module2.c
OBJS=$(SRC:%.c=%.o)
HDR=include1.h include2.h

CC=gcc
CFLAGS=-Wall -ggdb -D_XOPEN_SOURCE -I. -ansi

all: program

program: $(OBJS)
        $(CC) $(CFLAGS) -o $@ $(OBJS)

.o: $(@:%.o=%.c) $(HDR)
        $(CC) $(CFLAGS) -c $<

clean:
        rm -f program $(OBJS)

It works for the most part, except when a change in one of the includes happens, result in make telling me "nothing to do".
Code:
$ make
gcc -Wall -ggdb -D_XOPEN_SOURCE -I. -ansi   -c -o module1.o module1.c
gcc -Wall -ggdb -D_XOPEN_SOURCE -I. -ansi   -c -o module2.o module2.c
gcc -Wall -ggdb -D_XOPEN_SOURCE -I. -ansi -o program module1.o module2.o
$ touch include1.h
$ touch include2.h
$ make
make: Nothing to be done for `all'.
$ touch module1.c
$ make
gcc -Wall -ggdb -D_XOPEN_SOURCE -I. -ansi   -c -o module1.o module1.c
gcc -Wall -ggdb -D_XOPEN_SOURCE -I. -ansi -o program module1.o module2.o
$

Both include?.h files are used in both module?.c files. I probably screwed up the prerequisite part of the target definition, but for the love of the FSM, I can't find it.

All files reside on a ext3 LV, without any special time-keeping options altered.

Any help would be greatly appreciated.
 

8 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Problems with gnu make

I am running a make file through the gnu make tool and i am getting the following error jsh1035c:/users/egate453/admegate/kapil/samples $ make -f GNUmakefile queue_c make -f ./GNUmakefile queue_c in_objdir=1 build_root=/users/egate453/admegate/kapil/samples make: Entering directory... (2 Replies)
Discussion started by: handak9
2 Replies

2. UNIX for Dummies Questions & Answers

What's the difference between PMake and GNU Make?

My system is ubuntu, can I use PMake ? (0 Replies)
Discussion started by: meili100
0 Replies

3. Solaris

SSH doesn't pick up user's project from /etc/project

We have a system running ssh. When a user logs in, they do not get the project they are assigned to (they run under "system"). I verify the project using the command "ps -e -o user,pid,ppid,args,project". If you do a "su - username", the user does get the project they are assigned to (and all... (2 Replies)
Discussion started by: kurgan
2 Replies

4. UNIX for Dummies Questions & Answers

my make doesn't work

hi I wrote the following makefile, I have just one problem, when i type make clean I get the message make 'clean' is up to date and any obj file is removed from my folder, what's wrong? Thank you CC = cc all: es.o elaboration.o $(CC) -o es es.o elaboration.o elaboration.o:... (0 Replies)
Discussion started by: Puntino
0 Replies

5. UNIX for Dummies Questions & Answers

a for loop that doesn't make sense

I've been referring bash info for processes and came across a structure for a process which is defined like typedef struct process { struct process *next; char ** argv . . . }process; What I don't understand is that in the program there's a for loop which goes like this job... (2 Replies)
Discussion started by: sdsd
2 Replies

6. Programming

Detecting host OS in Gnu make

Is this possible? Right now I'm developing some code for Linux, Windows and OS X. To build on each of the systems I've currently got separate build targets for each platform. Ideally I'd like to set up a single make rule that can detect the appropriate target and build it. I know this is... (2 Replies)
Discussion started by: G_Morgan
2 Replies

7. SCO

GNU cpp and make on SCO

Installed GNU make and the GNU C/C++ compiler on SCO Openserver 5.0.7 recently. Only a normal user is able to run make and compile programs - root is not able to. Under root, make do run, but root can't access the compiler at all, even tho I set root's path to point to the compiler.... (0 Replies)
Discussion started by: The_Librarian
0 Replies

8. AIX

Not picking up the GNU version of make

Hi team, I am new to unix,and need your advice on the below. I am using aix5.3 and have installed make-3.82 on the server. I need to use gmake for configuring and installing a package ,but it is giving error at the below root@sapsrp:/usr/tmp/xymon-4.3.2 # ./configure.server ... (7 Replies)
Discussion started by: sonal kumar
7 Replies
GNULIB-TOOL(1)						      GNU Portability Library						    GNULIB-TOOL(1)

NAME
gnulib-tool - program for authors or maintainers which want to import modules from gnulib into their packages. SYNOPSIS
gnulib-tool --list gnulib-tool --import [module1 ... moduleN] gnulib-tool --update gnulib-tool --create-testdir --dir=directory module1 ... moduleN gnulib-tool --create-megatestdir --dir=directory [module1 ... moduleN] gnulib-tool --test --dir=directory module1 ... moduleN gnulib-tool --megatest --dir=directory [module1 ... moduleN] gnulib-tool --extract-description module gnulib-tool --extract-filelist module gnulib-tool --extract-dependencies module gnulib-tool --extract-autoconf-snippet module gnulib-tool --extract-automake-snippet module gnulib-tool --extract-include-directive module gnulib-tool --extract-license module gnulib-tool --extract-maintainer module gnulib-tool --extract-tests-module module DESCRIPTION
The GNU portability library is a macro system and C declarations and definitions for commonly-used API elements and abstracted system behaviors. It can be used to improve portability and other functionality in your programs. OPTIONS
Operation modes: --list print the available module names. --import import the given modules into the current package; if no modules are specified, update the current package from the current gnulib. --update update the current package, restore files omitted from CVS. --create-testdir create a scratch package with the given modules. --create-megatestdir create a mega scratch package with the given modules one by one and all together. --test test the combination of the given modules (recommended to use CC="gcc -Wall" here). --megatest test the given modules one by one and all together (recommended to use CC="gcc -Wall" here). --extract-description extract the description. --extract-filelist extract the list of files. --extract-dependencies extract the dependencies. --extract-autoconf-snippet extract the snippet for configure.ac. --extract-automake-snippet extract the snippet for lib/Makefile.am. --extract-include-directive extract the #include directive. --extract-license report the license terms of the source files under lib/. --extract-maintainer report the maintainer(s) inside gnulib. --extract-tests-module report the unit test module, if it exists. Options: --dir=DIRECTORY specify the target directory. For --import, this specifies where your configure.ac can be found. Defaults to current directory. --lib=LIBRARY Specify the library name. Defaults to 'libgnu'. --source-base=DIRECTORY Directory relative --dir where source code is placed (default "lib"), for --import. --m4-base=DIRECTORY Directory relative --dir where *.m4 macros are placed (default "m4"), for --import. --tests-base=DIRECTORY Directory relative --dir where unit tests are placed (default "tests"), for --import. --aux-dir=DIRECTORY Directory relative --dir where auxiliary build tools are placed (default "build-aux"). --with-tests Include unit tests for the included modules. --avoid=MODULE Avoid including the given MODULE. Useful if you have code that provides equivalent functionality. This option can be repeated. --lgpl Abort if modules aren't available under the LGPL. Also modify license template from GPL to LGPL. --libtool Use libtool rules, for --import. --macro-prefix=PREFIX Specify the prefix of the macros 'gl_EARLY' and 'gl_INIT'. Default is 'gl'. --no-changelog don't update or create ChangeLog files. --dry-run For --import, only print what would have been done. -s, --symbolic, --symlink Make symbolic links instead of copying files. -h, --help Show summary of options. BUGS
Report bugs to <bug-gnulib@gnu.org>. SEE ALSO
check-module(1). AUTHOR
gnulib was written by the Free Software Foundation and others (sources of various origins). This manual page was written by Daniel Baumann <daniel@debian.org>, for the Debian project (but may be used by others). 0.0.20060601 2006-06-01 GNULIB-TOOL(1)
All times are GMT -4. The time now is 07:43 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy