Sponsored Content
Top Forums Shell Programming and Scripting Makefile doesn't update $< variable Post 302510021 by Kodreanu on Friday 1st of April 2011 10:36:30 AM
Old 04-01-2011
Makefile doesn't update $< variable

Hello guys,

I could use advise from more experienced guys about my Makefile. In short, the problem with my Makefile is that $< doesnt change
inside my rule.

Here is my Makefile:

Code:
# Makefile for CORE

CC = gcc.exe
AS = as.exe
AR = ar.exe

INCLUDE = \
-I../lib/tomcrypt/inc \
-I../lib/tommath/inc \
-I../lib/hal_dev/traces_gnu/inc \


CFLAGS = -DCORE_SW_VERSION='"CORE.07.01.04.01.03.01.R"' -D__HAL_DBG__ -D__MQX_FIO__ -O1 -g3 -Wall -c -fmessage-length=0  -std=c99 -fgnu89-inline -mno-volatile-cache $(INCLUDE)


OBJDIR = $(shell pwd)
SOURCEDIR = ../sources
PATTERN = ..

#this scans for .c files, and there is a lot of them
CSRC := $(shell find $(SOURCEDIR) -name '*.c')

#I have also tried with CSRC = $(shell find $(SOURCEDIR) -name '*.c'), same thing

OBJ = $(CSRC:.c=.o)
OBJS = $(patsubst ../%,$(OBJDIR)/%,$(OBJ)) 



.PHONY: all
all: $(OBJS)	
	../libprocess.sh dev traces_gnu 16.01.06.01.06.00 dummy
	$(AR) -q CORE.07.01.04.01.03.01.R.a $(OBJS)	
	../release.sh dev dev CORE.07.01.04.01.03.01.R traces_gnu CORE.07.01.04.01.03.01.R.a GNU dummy

.PHONY: csrc
csrc: $(CSRC)
	$(CC) $(CFLAGS) $(CSRC)

.PHONY: asm
asm: $(SSRC)
	$(AS) $(SSRC)

.PHONY: clean
clean:
	rm -f $(OBJS)
	
$(OBJS): $(CSRC)		
	mkdir -p $(dir $@)	
	$(CC) $(CFLAGS) $< -o $@

------------------------

Now, I have printed $< inside my $(OBJS) rule and I can see that this doesn't change, that it's always first file in the line of the strings.
Do you see where is the mistake? Thanks!

Last edited by pludi; 04-01-2011 at 11:57 AM..
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ksh: A part of variable A's name is inside of variable B, how to update A?

This is what I tried: vara=${varb}_count (( vara += 1 )) Thanks for help (4 Replies)
Discussion started by: pa3be
4 Replies

2. Shell Programming and Scripting

Is there any way to set env variable in top level Makefile and unset when done

Hello I have compilation directory structure the top level Makefile is the one that contains all the sub directories I want to set in this Makefile env variable say : setenv OPTIMIZATION_LEVEL "1" and when all the sub directories done compiling it will set this variable to different lavel... (0 Replies)
Discussion started by: umen
0 Replies

3. Shell Programming and Scripting

alternative for recursive variable in Makefile?

Hi, I want to append some compiler flags to CFLAGS_LOCAl variable defined in one makefile. I am trying to append required flags in another makefile like this: CFALGS_LOCAL = $(CFLAGS_LOCAL) +check=all but when I make, I get the error: ../../../../rules/target.rules:4: *** Recursive... (2 Replies)
Discussion started by: prits31
2 Replies

4. Programming

Makefile: multiple target variable substitution

Greetings! Basically, I would like to properly handle this with gnu make: alltools: my_tool mysecond_tool mythird_tool etc_tool %_tool: dir1/%_tool.vf dir2/%_tool/subdir2/%_tool.ver <tab>@echo done %.vf: <tab>RUN_VF $* %.ver: <tab>RUN_VER $* So, if I were to do something like:... (0 Replies)
Discussion started by: Harlinator
0 Replies

5. Solaris

Setting/Modifying variable specific to target in Makefile

Hi, I have a small piece of Makefile script which throw's error on Sun Sparc machine, but works fine with Sun Optron, Linux, AIX machines. FOO=Naveen test1:FOO=Dhilip test1: @echo FOO is ${FOO} test2: @echo Me is ${FOO} Output on Sun Sparc - ukhml-v890new-~/test: make test1... (5 Replies)
Discussion started by: nsriram
5 Replies

6. Shell Programming and Scripting

how to programmatically generate makefile variable

I make to parse the release version from a text file and set the release version label into a Makefile variable. I tried: VERSION := `grep vsn s1db.app|sed -e s/*\"// -e s/\"*//` but looks like make, unlike shell, literally just take the entire `grep ...` as the variable value. Then I tried... (3 Replies)
Discussion started by: benkial
3 Replies

7. UNIX for Advanced & Expert Users

Why updating atime doesn't update ctime?

Hi, ctime is the inode change time. If reading a file, its atime will be updated, which should cause inode member i_atime changed, which is an inode change. So ctime should also be updated. But if I try to ls a directory on redhat, only the directory atime gets updated, not ctime. Why? THANKS! (2 Replies)
Discussion started by: password636
2 Replies

8. Shell Programming and Scripting

Chopping off the last directory in a Makefile variable

Hi everybody, I have a Makefile where I need to use an environment variable that I set, MYBUILDPATH. The variable can be different depending on the computer, but it always ends with /myBuildRoot/data_tables. Sometimes the data_tables directory will have a slash after it, sometimes not, depending... (2 Replies)
Discussion started by: Zel2008
2 Replies

9. AIX

AIX 6.1 TL8 update : bos.aso doesn't install.

Hello. An update of TL from TL7 to TL8 is ending with errors : Requisite Failures ------------------ SELECTED FILESETS: The following is a list of filesets that you asked to install. They cannot be installed until all of their requisite filesets are also installed. See subsequent... (4 Replies)
Discussion started by: stephnane
4 Replies
Makefile::AST(3pm)					User Contributed Perl Documentation					Makefile::AST(3pm)

NAME
Makefile::AST - AST for (GNU) makefiles DESCRIPTION
The structure of this (GNU) makefile AST is designed based on GNU make's data base listing output produced by "--print-data-base". This AST library provides the following classes: Makefile::AST The primary class for ASTs. Provides interface for node adding and querying, such as "add_implicit_rule", "apply_implicit_rules", "add_explicit_rule", "apply_explicit_rules", "add_var", "add_auto_var", "get_var", as well as lots of other utility functions, like method "eval_var_value" for computing the ultimate values of makefile variables, method "enter_pad" and "leave_pad" for local variable's scoping pad. Makefile::AST::Rule::Base This is the base class for the rule nodes in the AST. It has properties like "normal_prereqs", "order_prereqs", "commands", and "colon". Makefile::AST::Rule This class represents the de-sugared form of simple rules and implicite rules after application. It inherits from Makefile::AST::Rule::Base, and adds new properties "target" and "other_targets". Makefile::AST::Rule::Implicit This class represents the implicit rule nodes in the AST. It inherits from Makefile::AST::Rule::Base, and adds new properties "targets", "match_anything", and "is_terminal". Makefile::AST::StemMatch This class encapsulates the file pattern matching (file names containing "%") and stem substitution algorithms. Makefile::AST::Variable It represents the makefile variable nodes in the AST, including "name", "value", "flavor", and "origin". Makefile::AST::Command Used to encapsulate information regarding makefile rule commands (e.g. command body, command modifiers "@", "-", "+", and etc.) as a whole. LIMITATIONS AND TODO
Adding support for other flavors' makes into this AST library should make a huge amount of sense. The most interesting candiate is Microsoft's NMAKE. CODE REPOSITORY
For the very latest version of this script, check out the source from http://github.com/agentzh/makefile-parser-pm <http://github.com/agentzh/makefile-parser-pm>. There is anonymous access to all. AUTHOR
Zhang "agentzh" Yichun "<agentzh@gmail.com>" COPYRIGHT AND LICENSE
Copyright (c) 2007-2008 by Zhang "agentzh" Yichun (agentzh). This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
Makefile::AST::Evaluator, Makefile::Parser::GmakeDB, makesimple, pgmake-db, Makefile::DOM. perl v5.12.4 2011-08-17 Makefile::AST(3pm)
All times are GMT -4. The time now is 12:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy