##=====================================================================
## Makefile to build a simple EQUINOX-3D plugin
##
## This directory is a sample that shows you how to set up a local
## EQUINOX-3D plugin development environment.
##
## This is the recommended way of developing your own plugins, as
## the main EQUINOX-3D directory is overwritten when you install
## an newer version of the package.
##
## AUTHOR:	Gabor Nagy
## DATE:	2002-Aug-01 23:32:57
##
## Copyright (C) 1995 by Gabor Nagy. All rights reserved.
##=====================================================================

EQUINOXDIR = /usr/local/equinox

DSODIR =	$(EQUINOXDIR)/Plugins
OBJDIR =	.

CFLAGS =	$(OPTFLAG) $(CF) $(CLF) -DUSEOpenGL $(STDINC) $(XINC) -I$(EQUINOXDIR)/src/include

IconRules =	$(EQUINOXDIR)/src/E3D/Panel/IconRules

include		$(IconRules)

TARGETS	=	$(DSODIR)/Simple.so



Plugins all:	$(DSODIR)\
		$(TARGETS)


clean:
		rm -f so_locations $(TARGETS) $(OBJDIR)/*.o $(OBJDIR)/*.o $(OBJDIR)/Surface/*.o core


## Rules to create the necessary directories if they don't exist yet
##
$(OBJDIR):
			mkdir -p $@

$(OBJDIR)/Icons:
			mkdir -p $@

$(DSODIR):		$(OBJDIR)
			mkdir -p $@



## Build rules for the individual plugins
##

##=======================================
## Simple plugin example
##=======================================
$(DSODIR)/Simple.so:		$(OBJDIR)/Simple.o\
				$(OBJDIR)/Icons/Simple.o $(OBJDIR)/Icons/SimpleActive.o $(OBJDIR)/Icons/SimpleArm.o
				ld -shared $(OBJDIR)/Simple.o $(OBJDIR)/Icons/Simple.o $(OBJDIR)/Icons/SimpleActive.o $(OBJDIR)/Icons/SimpleArm.o -o $@

$(OBJDIR)/Simple.o:		Simple.c
				$(CC) -c $(CFLAGS) Simple.c -o $@

## Rules to build the icons
##
## The images for the icon's different states are built automatically, from the Icons/png/Simple.png file:
##  Icons/Simple.o         - Inactive state
##  Icons/SimpleActive.o   - Highlighted state (mouse-over)
##  Icons/SimpleArm.o      - Armed state (pushed-in)
##
## Note that Icons/png/Simple.png has an alpha (opacity) channel and is correctly blended on the tool-panel.
##
## Since the images are separate .o files, you can quickly change the icons of a plugin, without having to
## re-compile the plugin's functionality.
##
##

$(OBJDIR)/Icons/Simple.o:	Icons/png/Simple.png $(IconRules)
				ids $(ICON128_DROPSHADOW) Icons/png/Simple.png tmp.png
				icr -c $(ICON128_CROP) tmp.png tmp.png
				is -s $(ICON_XSIZE) $(ICON_YSIZE) tmp.png Icons/Simple.c;rm tmp.png
				$(CC) -c Icons/Simple.c -o $@;rm Icons/Simple.c

$(OBJDIR)/Icons/SimpleActive.o:	Icons/png/Simple.png $(IconRules)
				icn -c $(ICONH_CONTRAST) Icons/png/Simple.png tmp.png
				ids $(ICON128_DROPSHADOW) tmp.png tmp.png
				icr -c $(ICON128ACTIVE_CROP) tmp.png tmp.png
				is -s $(ICON_XSIZE) $(ICON_YSIZE) tmp.png Icons/SimpleActive.c;rm tmp.png
				$(CC) -c Icons/SimpleActive.c -o $@;rm Icons/SimpleActive.c

$(OBJDIR)/Icons/SimpleArm.o:	Icons/png/Simple.png $(IconRules)
				icn -c $(ICONH_CONTRAST) Icons/png/Simple.png tmp.png
				ids $(ICON128ARM_DROPSHADOW) tmp.png tmp.png
				icr -c $(ICON128ARM_CROP) tmp.png tmp.png
				is -s $(ICON_XSIZE) $(ICON_YSIZE) tmp.png Icons/SimpleArm.c;rm tmp.png
				$(CC) -c Icons/SimpleArm.c -o $@;rm Icons/SimpleArm.c
