Sponsored Content
Top Forums Programming Makefile -> pc precedence over c Post 302225824 by p50p100 on Sunday 17th of August 2008 07:16:18 AM
Old 08-17-2008
I think it's better that you write your task in Makefile.

Code:
RM=rm -f
PC2C_FILE=`find -name '*.pc' -exec echo {} \; | sed -e 's/.pc$$/.c/' `
.SUFFIXES:
.SUFFIXES: .c .o .obj .pc

all:    test.exe

test.exe:       test.o test2.o test3.o
        echo $^ > $@
.c.o:
        echo $^ > $@

.pc.c:
        echo $^ > $@

clean:
        $(RM) test.exe *.o
        make better_storage_maintenance

better_storage_maintenance:
        $(RM) $(PC2C_FILE)

ls result:
Code:
4 Makefile
0 test.pc
0 test2.c
0 test3.pc

case 1: Compile
$ make
Code:
echo test.pc > test.c
echo test.c > test.o
echo test2.c > test2.o
echo test3.pc > test3.c
echo test3.c > test3.o
echo test.o test2.o test3.o > test.exe
rm test3.c test.c

(red letter is automaticaly added. So do nothing.)

The version of make program I use:
Code:
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

case 2: Better storage maintenance
$ make better_storage_maintenance
Code:
rm -f `find -name '*.pc' -exec echo {} \; | sed -e 's/.pc$/.c/' `

case 3: Cleaning
$ make clean
Code:
rm -f test.exe *.o
make better_storage_maintenance

case 4: look up .c file from .pc file
$ make test.c
Code:
echo test.pc > test.c

(You need to execute "make better_storage_maintenance" at later)

Last edited by p50p100; 08-17-2008 at 08:40 AM..
 

10 More Discussions You Might Find Interesting

1. Programming

EOF & precedence of !=

Gurus, I am teaching myself C and have a question. I wrote a small prog that reads characters as entered at the prompt and checks the value for EOF. Unless I am 100% wrong, the value will be '1' until getchar() has anything to read in my stream. /* PROG 1 */ #include <stdio.h> ... (4 Replies)
Discussion started by: alan
4 Replies

2. Shell Programming and Scripting

precedence of stderr and stdout

#!/usr/bin/perl open(STDOUT, ">>$Textfile") open(STDERR, ">>$Textfile") print "program running\n"; $final = join("+", $initial,$final) #5 close (STDOUT); close (STDERR);Hi all, above is my perl code. Notice i have captured the stdout and stderr to the same textfile. my code is expected to... (1 Reply)
Discussion started by: new2ss
1 Replies

3. Shell Programming and Scripting

setting precedence with getopts

Hi, I am re-writing a script I wrote which emulated the "rm" command, in my orginal script I had problems with precedence, I did find a way round it by creating a seperate case statements which checked the options and performed the actions accordingly, does anyone know if I can use getopts... (1 Reply)
Discussion started by: jack1981
1 Replies

4. High Performance Computing

help with makefile

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)
Discussion started by: explorer
2 Replies

5. UNIX for Advanced & Expert Users

Makefile problem - How to run module load in a Makefile

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)
Discussion started by: hernandinho
2 Replies

6. UNIX for Advanced & Expert Users

Makefile executing another Makefile first?

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)
Discussion started by: wwuster
0 Replies

7. Homework & Coursework Questions

Help with Simple Multi-Level Makefile (Extremely New at Makefile)

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)
Discussion started by: Tatl
1 Replies

8. Shell Programming and Scripting

Precedence in operators issue

Hello, I am trying to write a small acript to change directory to $HOME depending on the user logged in. However when i provide this command say, ABC_USER=myself cd ~${ABC_USER} i am getting the following error, ksh: ~myself: not found I know i am doing something really silly but... (4 Replies)
Discussion started by: arvindspr06
4 Replies

9. UNIX for Dummies Questions & Answers

What should be precedence of using awk, sed, head and tail in UNIX?

Hi All, I am new to unix. In this forum some days back, I have read something like below: 1) Do not use perl if awk can do your work. 2) Do not use awk if sed can do your work. . . . I do not re-collect the whole thing. I think it is good to know the precedence of using these... (2 Replies)
Discussion started by: Prathmesh
2 Replies

10. Programming

Makefile for g++

Hi All, We have moved our OS from Sun Solaris to Linux and also some of the compilers. Our old makefile used to be as below: CC=cc FLAGS=-G -KPIC -DLG_SOLARIS_OS DEFINES=-DSunOS SYSLIBS=-lc .SUFFIXES : .c .c.o : ;$(CC) -c $(FLAGS) $(DEFINES) $*.c -o $*.o ... (3 Replies)
Discussion started by: shash
3 Replies
CGI::FormBuilder::Source::YAML(3pm)			User Contributed Perl Documentation		       CGI::FormBuilder::Source::YAML(3pm)

NAME
CGI::FormBuilder::Source::YAML - Initialize FormBuilder from YAML file SYNOPSIS
use CGI::FormBuilder; my $form = CGI::FormBuilder->new( source => { source => 'form.fb', type => 'YAML', }, ); my $lname = $form->field('lname'); # like normal DESCRIPTION
This reads a YAML (YAML::Syck) file that contains FormBuilder config options and returns a hash to be fed to CGI::FormBuilder->new(). Instead of the syntax read by CGI::FormBuilder::Source::File, it uses YAML syntax as read by YAML::Syck. That means you fully specify the entire data structure. LoadCode is enabled, so you can use YAML syntax for defining subroutines. This is convenient if you have a function that generates valida- tion subrefs, for example, I have one that can check profanity using Regexp::Common. validate: myfield: javascript: /^[sS]{2,50}$/ perl: !!perl/code: >- { My::Funk::fb_perl_validate({ min => 2, max => 50, profanity => 'check' })->(shift); } POST PROCESSING
There are two exceptions to "pure YAML syntax" where this module does some post-processing of the result. REFERENCES (ala CGI::FormBuilder::Source::File) You can specify references as string values that start with &, $, @, or \% in the same way you can with CGI::FormBuilder::Source::File. If you have a full direct package reference, it will look there, otherwise it will traverse up the caller stack and take the first it finds. For example, say your code serves multiple sites, and a menu gets different options depending on the server name requested: # in My::Funk: our $food_options = { www.meats.com => [qw( beef chicken horta fish )], www.veggies.com => [qw( carrot apple quorn radish )], }; # in source file: options: @{ $My::Funk::food_options->{ $ENV{SERVER_NAME} } } EVAL STRINGS You can specify an eval statement. You could achieve the same example a different way: options: eval { $My::Funk::food_options->{ $ENV{SERVER_NAME} }; } The cost either way is about the same -- the string is eval'd. EXAMPLE
method: GET header: 0 title: test name: test action: /test submit: test it linebreaks: 1 required: - test1 - test2 fields: - test1 - test2 - test3 - test4 fieldopts: test1: type: text size: 10 maxlength: 32 test2: type: text size: 10 maxlength: 32 test3: type: radio options: - - 1 - Yes - - 0 - No test4: options: @test4opts sort: &Someother::Package::sortopts validate: test1: /^w{3,10}$/ test2: javascript: EMAIL perl: eq 'test@test.foo' test3: - 0 - 1 test4: @test4opts You get the idea. A bit more whitespace, but it works in a standardized way. METHODS
new() Normally not used directly; it is called from CGI::FormBuilder. Creates the "CGI::FormBuilder::Source::YAML" object. Arguments from the 'source' hash passed to CGI::FormBuilder->new() will become defaults, unless specified in the file. parse($source) Normally not used directly; it is called from CGI::FormBuilder. Parses the specified source file. No fancy params -- just a single file- name is accepted. If the file isn't acceptable to YAML::Syck, I suppose it will die. SEE ALSO
CGI::FormBuilder, CGI::FormBuilder::Source AUTHOR
Copyright (c) 2006 Mark Hedges <hedges@ucsd.edu>. All rights reserved. LICENSE
This module is free software; you may copy it under terms of the Perl license (GNU General Public License or Artistic License.) http://www.opensource.org/licenses/index.html perl v5.8.8 2007-12-09 CGI::FormBuilder::Source::YAML(3pm)
All times are GMT -4. The time now is 01:36 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy