MACHINE=$(shell uname -m)
ifeq ($(MACHINE), BePC)
	APP = _APP_.so
	SYMSUFFIXES=""
	LIBSUFFIX="_x86"
else
	APP = _APP_
	SYMSUFFIXES={,.SYM,.xMAP}
	LIBSUFFIX=""
endif
PCOUNT=$(shell sysinfo | grep "^[0-9] " | sed -e "s/[A-Za-z].*//")
DEVLIB=../../../../../develop/lib

all::

# specify the name of the binary
NAME= Ripple

# specify the type of binary
#	APP:	Application
#	SHARED:	Shared library or add-on
#	STATIC:	Static library archive
#	DRIVER: Kernel Driver
TYPE= APP

#	add support for new Pe and Eddie features
#	to fill in generic makefile

#%{
# @src->@ 

#	specify the source files to use
#	full paths or paths relative to the makefile can be included
# 	all files, regardless of directory, will have their object
#	files created in the common object directory.
#	Note that this means this makefile will not work correctly
#	if two source files with the same name (source.c or source.cpp)
#	are included from different directories.  Also note that spaces
#	in folder names do not work well with this makefile.
SRCS=ripple.cpp Config.cpp
		
#	specify the resource files to use
#	full path or a relative path to the resource file can be used.
RSRCS= 

# @<-src@ 
#%}

#	end support for Pe and Eddie

#	specify additional libraries to link against
#	there are two acceptable forms of library specifications
#	-	if your library follows the naming pattern of:
#		libXXX.so or libXXX.a you can simply specify XXX
#		library: libbe.so entry: be
#		
#	- 	if your library does not follow the standard library
#		naming scheme you need to specify the path to the library
#		and it's name
#		library: my_lib.a entry: my_lib.a or path/my_lib.a
LIBS= be imagemanip$(LIBSUFFIX) $(DEVLIB)/bigprefs.$(CPU).a ../Common.a
		
#	specify additional paths to directories following the standard
#	libXXX.so or libXXX.a naming scheme.  You can specify full paths
#	or paths relative to the makefile.  The paths included may not
#	be recursive, so include all of the paths where libraries can
#	be found.  Directories where source files are found are
#	automatically included.
LIBPATHS= ../../../../../develop/lib

#	additional paths to look for system headers
#	thes use the form: #include <header>
#	source file directories are NOT auto-included here
SYSTEM_INCLUDE_PATHS =

#	additional paths to look for local headers
#	thes use the form: #include "header"
#	source file directories are automatically included
LOCAL_INCLUDE_PATHS = ../../../../../develop/ImageManip ../../../../../develop/ ..

#	specify the level of optimization that you desire
#	NONE, SOME, FULL
OPTIMIZE= off
ifeq ($(MACHINE), BePC)
	CFLAGS += -O1 -mpentiumpro -fno-pic -fomit-frame-pointer
else
	CFLAGS += -O4 -opt nopeephole -proc 604
endif


#	specify any preprocessor symbols to be defined.  The symbols
#	will be set to a value of 1.  For example specify DEBUG if you want
#	DEBUG=1 to be set when compiling.
DEFINES= 

#	specify special warning levels
#	if unspecified default warnings will be used
#	NONE = supress all warnings
#	ALL = enable all warnings
WARNINGS = 

#	specify whether image symbols will be created
#	so that stack crawls in the debugger are meaningful
#	if TRUE symbols will be created
SYMBOLS = TRUE

#	specify debug settings
#	if TRUE will allow application to be run from
#	a source-level debugger
DEBUGGER = TRUE

#	specify additional compiler flags for all files
COMPILER_FLAGS =

#	specify additional linker flags
LINKER_FLAGS =

## include the makefile-engine
include /boot/develop/etc/makefile-engine

ADDON_DIR = ~/config/add-ons/ImageManip

FINAL_TARGET = $(ADDON_DIR)/$(NAME)

# Override the standard rule so that we can see the file name
$(OBJ_DIR)/%.o : %.cpp
	$(CC) -c $< -o $@ $(INCLUDES) $(CFLAGS)

tags: ../systags *.cpp
	@if [ -e .notags ]; then touch tags; else make --no-print-directory systags; fi;

systags:
	cp ../systags tags 
	ctags -p . -a -n $(SRCS) Config.h ../*.h ../../../../../develop/ImageManip/*.h &

$(ADDON_DIR):
	@[ -d $(ADDON_DIR) ] || mkdir $(ADDON_DIR) > /dev/null 2>&1

all::
	@make --no-print-directory -j $(PCOUNT) $(FINAL_TARGET)

$(FINAL_TARGET): $(TARGET) tags
	@make -s --no-print-directory $(ADDON_DIR)
	copyattr -d $(TARGET)$(SYMSUFFIXES) $(ADDON_DIR)
	@touch $@

clean::
	rm -rf $(OBJ_DIR) ../systags systags tags

DESTDIR=../../../../../GobeTree/ImageManip
ifeq ($(CPU), ppc)
	COPYMAP=cp obj.$(CPU)/$(NAME).xMAP $(DESTDIR)
else
	COPYMAP=
endif
tree:
	mkdir -p $(DESTDIR)/src/$(NAME)
	cp $(SRCS) Makefile COPYING $(DESTDIR)/src/$(NAME)
	copyattr -d obj.$(CPU)/$(NAME) $(DESTDIR)
	$(COPYMAP)

