05-12-2008
It could be done, I suppose, but are you sure this is really the right approach? A customary arrangement would be to factor the platform-dependent stuff to individual #include files or directories, then at compilation time pass in a #define which selects which platform to build for. By and large, this sounds like a more maintainable and scalable approach than what you are proposing (and avoids this pesky issue of copying files and then being sure whatever is there is indeed the correct version).
"Classic" make is not very amenable to conditional dependencies; if GNU make syntax or some other extension is permissible, then it almost sounds doable, but still not necessarilly elegant and sustainable.
Whatever you come up with, I'd think you need to take into account idempotency and concurrency issues; what if a make is aborted, and the files are left lying there for the next make to pick up; or, what if two makes are started at roughly the same time?
Last edited by era; 05-12-2008 at 12:41 PM..
Reason: Idempotency and concurrency remarks
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
hello,
i'm looking for the sources of the old, original unices (v3 preferred). could someone point a link? (2 Replies)
Discussion started by: fdarkangel
2 Replies
2. UNIX for Dummies Questions & Answers
Hi Friends :)
I have a long file having fields in the form :
Field1 yy/mm/dd hh:mm:ss Duration(Sec)
line 1) 123123 05/11/30 12:12:56 145
line 2) 145235 05/11/30 12:15:15 30
line 3) 145264 05/11/30 13:14:56 178
.
.
I want to subtract yy/dd/dd hh:mm:ss in line (2) from yy/mm/dd hh:mm:ss in... (1 Reply)
Discussion started by: vanand420
1 Replies
3. Linux
I"m installing my ATI card in FC4. I'm going off of instructions that i've found. The firs step says that i need my kernel sources which i've got then it says that i've gotta unpack them so i can make links to the file later. My kernel sources that i've got are .src.rpm I've installed them but... (1 Reply)
Discussion started by: byblyk
1 Replies
4. UNIX for Advanced & Expert Users
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
5. News, Links, Events and Announcements
So, I was browsing groklaw.net, and I was surprised to read that Pamela Jones was reading the copyright notices in the UnixWare 7.1.1 source code files...
Groklaw - Santa Cruz Listed Novell as Owning the Copyrights in 1999
How can that be? Are the UnixWare 7.1.1 sources available to the... (1 Reply)
Discussion started by: pepinox
1 Replies
6. Homework & Coursework Questions
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
7. UNIX for Dummies Questions & Answers
Hello again,
A little while back I got help with creating a command to search all directories and sub directories for files from daystart of day x.
I'm wondering if there is a command that I've overlooked that may be able to search for / write folder names to an output file which ideally... (2 Replies)
Discussion started by: Aussiemick
2 Replies
8. Shell Programming and Scripting
Hi,
I'm trying to print and outrput of a timestamp from a script i did that calcs de time diference betwen 2 timestamps in the format HH:MM:SS and i properly formated it with printf inside awk, but i can't do it with separate statements.
This works fine, but can you explaim-me how to do it... (2 Replies)
Discussion started by: grafman
2 Replies
9. UNIX for Dummies Questions & Answers
Hi all,
What is the difference between these two comands?
sed s/a/b/ <f1 >f2
sed s/a/b/ f1 >f2
Best,
santiagorf (3 Replies)
Discussion started by: santiagorf
3 Replies
10. Shell Programming and Scripting
Hello I'm conecting in server1 and I need connect to server2(other). I need doing that becouse I need run a lot bach of diferent serverX. I explain better:
Connectionn server1 ## I need that all the step exit for xxx.txt of the server1
- run xxxx.sh
- Conection server2
- su -... (1 Reply)
Discussion started by: bsebastian
1 Replies
LEARN ABOUT DEBIAN
ocamldep
OCAMLDEP(1) General Commands Manual OCAMLDEP(1)
NAME
ocamldep - Dependency generator for Objective Caml
SYNOPSIS
ocamldep [ options ] filename ...
DESCRIPTION
The ocamldep(1) command scans a set of Objective Caml source files (.ml and .mli files) for references to external compilation units, and
outputs dependency lines in a format suitable for the make(1) utility. This ensures that make will compile the source files in the correct
order, and recompile those files that need to when a source file is modified.
The typical usage is:
ocamldep options *.mli *.ml > .depend
where .depend is the file that should contain the dependencies.
Dependencies are generated both for compiling with the bytecode compiler ocamlc(1) and with the native-code compiler ocamlopt(1).
OPTIONS
The following command-line options are recognized by ocamldep(1).
-I directory
Add the given directory to the list of directories searched for source files. If a source file foo.ml mentions an external compila-
tion unit Bar, a dependency on that unit's interface bar.cmi is generated only if the source for bar is found in the current direc-
tory or in one of the directories specified with -I. Otherwise, Bar is assumed to be a module from the standard library, and no
dependencies are generated. For programs that span multiple directories, it is recommended to pass ocamldep(1) the same -I options
that are passed to the compiler.
-ml-synonym .ext
Consider the given extension (with leading dot) to be a synonym for .ml.
-mli-synonym .ext
Consider the given extension (with leading dot) to be a synonym for .mli.
-modules
Output raw dependencies of the form filename: Module1 Module2 ... ModuleN where Module1, ..., ModuleN are the names of the compila-
tion units referenced within the file filename, but these names are not resolved to source file names. Such raw dependencies cannot
be used by make(1), but can be post-processed by other tools such as Omake(1).
-native
Generate dependencies for a pure native-code program (no bytecode version). When an implementation file (.ml file) has no explicit
interface file (.mli file), ocamldep(1) generates dependencies on the bytecode compiled file (.cmo file) to reflect interface
changes. This can cause unnecessary bytecode recompilations for programs that are compiled to native-code only. The flag -native
causes dependencies on native compiled files (.cmx) to be generated instead of on .cmo files. (This flag makes no difference if all
source files have explicit .mli interface files.)
-pp command
Cause ocamldep(1) to call the given command as a preprocessor for each source file.
-slash Under Unix, this option does nothing.
-version
Print version string and exit.
-vnum Print short version number and exit.
-help or --help
Display a short usage summary and exit.
SEE ALSO
ocamlc(1), ocamlopt(1).
The Objective Caml user's manual, chapter "Dependency generator".
OCAMLDEP(1)