Sponsored Content
Top Forums Programming Using boost in program created by g++ Post 302750539 by kbw on Tuesday 1st of January 2013 07:03:16 PM
Old 01-01-2013
You haven't said what you want to do with the path processing. But you can use strchr() to get each directory or use strrchr() to get to the filename directly.

Regarding your build system, I think it's best to have a make file in each program directory, then have a single make file in the top level program directory that calls the others. You can do it like this:
Code:
SUBDIRS = getmisfit getpdf getvel raytrac rdt 

.PHONY: subdirs $(SUBDIRS)

subdirs: $(SUBDIRS)

$(SUBDIRS):
        $(MAKE) -C $@

See: GNU `make'

Also, GNU Make has a lot of built in rules. It already defines CC and CXX macros for the C and C++ compilers. Flags common to both compilers are set with CPPFLAGS and LDFLAGS for linker options.

As your set of programs probably all need common paths, you should set them in a separate make include file in the programs directory.

The raytrac make file will look something like:
Code:
include "../common.mk"

OBJS: raytrac

all: raytrac

clean:
        -rm raytrac *.o

raytrac: $(OBJS)
        $(LINK.cc) $^ -o $@
        cp $@ $(BIN)

Do that for each project.

common.mk has:
Code:
BIN = ../../bin/
CXXFLAGS += ../../library/boost_52_0/
LDFLAGS += -L ../../library/boost_52_0/libs -l <libname>

Clearly you don't need to specify Boost if you're not using it (by using the string routines instead).

LINKcc is GNU Make's C++ link rule. You can see all the rules by running:
Code:
make -p

 

7 More Discussions You Might Find Interesting

1. Linux

How do I boost the Linux performace

Hi All, I installed Linux recently on my PC and finding it difficult to boost its performance. It takes hell lot of time to open Mozilla, text pad , & even the booting process is too slow, many a times I got to manually power off to shutdown the computer. I will be glad if you could help me... (18 Replies)
Discussion started by: jayfriend
18 Replies

2. Solaris

Sun Studio 10 + Boost 1.36

Is it possible to build Boost 1.35 using Sun Studio 10? I can build Boost 1.35 using Sun Studio 11 successful. However, i'm unable to build it using Sun Studio 10 using the exact method. I really apprecaite if any expert can help on this. Thanks, (2 Replies)
Discussion started by: shingpui
2 Replies

3. Solaris

boost thread not accessible to boost::move error

Hi All I am working unders Sun Solaris and I am not "/opt/boost/boost/thread/detail/thread.hpp", line 344: Error: boost::thread::thread(boost::thread&) is not accessible from boost::move(boost::detail::thread_move_t<boost::thread>). Do you know if there are other solutions other than... (2 Replies)
Discussion started by: manustone
2 Replies

4. Programming

Boost C++ ASIO Networking

Hi, Based on the following example in the Boost C++ website: www. boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp]doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp I tried to create a similar TCP server that waits to accept a client connection... (0 Replies)
Discussion started by: tanlccc
0 Replies

5. Solaris

how to install boost 1_49_0 in solaris

hi guys, i downloaded boost1_49_0 tar.gz... then unzip and untar... how to install boost 1_49_0 in solaris plz help me (1 Reply)
Discussion started by: coolboys
1 Replies

6. UNIX for Dummies Questions & Answers

How do I declare boost?

Hello all, I am trying to "make" a database system, VDB (Veritas Data Base), and when I run "make" I receive the following error: VDBException.h:19: error: expected `)' before '*' token VDBException.h:20: error: expected `)' before '*' token VDBException.h:43: error: expected `)' before '*'... (4 Replies)
Discussion started by: Tyler_92
4 Replies

7. Programming

Boost.Test and CMake

Hi, I just started using CMake and the Boost Libraries. In this progress I encountered some problems. One of these problems is combining Boost unit tests with cmake. I don't know how to set the whole project up. I tried to set up a simple test project. This contains a main.cpp a comp.cpp and the... (0 Replies)
Discussion started by: ElCoyote
0 Replies
RAKE(1) 						 Ruby Programmers Reference Guide						   RAKE(1)

NAME
rake -- Ruby Make SYNOPSIS
rake [--f Rakefile] [--version] [-CGNPgnqstv] [-D [PATTERN]] [-E CODE] [-I LIBDIR] [-R RAKELIBDIR] [-T [PATTERN]] [-e CODE] [-p CODE] [-r MODULE] [--rules] [variable=value] target ... DESCRIPTION
Rake is a simple ruby(1) build program with capabilities similar to the regular make(1) command. Rake has the following features: o Rakefiles (Rake's version of Makefiles) are completely defined in standard Ruby syntax. No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?). o Users can specify tasks with prerequisites. o Rake supports rule patterns to synthesize implicit tasks. o Flexible FileLists that act like arrays but know about manipulating file names and paths. o A library of prepackaged tasks to make building rakefiles easier. OPTIONS
--version Display the program version. -C --classic-namespace Put Task and FileTask in the top level namespace -D [PATTERN] --describe [PATTERN] Describe the tasks (matching optional PATTERN), then exit. -E CODE --execute-continue CODE Execute some Ruby code, then continue with normal task processing. -G --no-system --nosystem Use standard project Rakefile search paths, ignore system wide rakefiles. -I LIBDIR --libdir LIBDIR Include LIBDIR in the search path for required modules. -N --no-search --nosearch Do not search parent directories for the Rakefile. -P --prereqs Display the tasks and dependencies, then exit. -R RAKELIBDIR --rakelib RAKELIBDIR --rakelibdir RAKELIBDIR Auto-import any .rake files in RAKELIBDIR. (default is rakelib ) -T [PATTERN] --tasks [PATTERN] Display the tasks (matching optional PATTERN) with descriptions, then exit. -e CODE --execute CODE Execute some Ruby code and exit. -f FILE --rakefile FILE Use FILE as the rakefile. -h --help Prints a summary of options. -g --system Using system wide (global) rakefiles (usually ~/.rake/*.rake ). -n --dry-run Do a dry run without executing actions. -p CODE --execute-print CODE Execute some Ruby code, print the result, then exit. -q --quiet Do not log messages to standard output. -r MODULE --require MODULE Require MODULE before executing rakefile. -s --silent Like --quiet, but also suppresses the 'in directory' announcement. -t --trace Turn on invoke/execute tracing, enable full backtrace. -v --verbose Log message to standard output (default). --rules Trace the rules resolution. SEE ALSO
ruby(1) make(1) http://rake.rubyforge.org/ REPORTING BUGS
Bugs, features requests and other issues can be logged at <http://onestepback.org/redmine/projects/show/rake>. You will need an account to before you can post issues. Register at <http://onestepback.org/redmine/account/register>. Or you can send an email to the author. AUTHOR
Rake is written by Jim Weirich <jim@weirichhouse.org> UNIX
November 7, 2012 UNIX
All times are GMT -4. The time now is 08:07 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy