# Set compiler's options depending on the architecture
ifeq ($(ARCHI),hppa)
  CC     = c89
  CFLAGS = -c +O3 +Olibcalls +Ofastaccess
  LDFLAGS= -s
endif
ifeq ($(ARCHI),hppa64)
  CC     = c89
  CFLAGS = -c +O3 +Olibcalls +Ofastaccess
  LDFLAGS= +FPVZOUiD
  OPT64  = +DD64
endif
ifeq ($(ARCHI),i86)
  CC     = gcc
  CFLAGS = -O3 -c -Wuninitialized -Wunused -Winline -Wshadow \
           -fexpensive-optimizations -funroll-loops
  LDFLAGS= -static-libgcc
endif
ifeq ($(ARCHI),i86x64)
  CC     = gcc
  CFLAGS = -O3 -arch x86_64 -c -Wuninitialized -Wunused -Winline -Wshadow \
           -fexpensive-optimizations -funroll-loops
  LDFLAGS= -arch x86_64 -static-libgcc
endif
ifeq ($(ARCHI),ppc)
  CC    = gcc
  CFLAGS= -O3 -c\
          -Wuninitialized -Wunused -Winline -Wshadow \
          -fexpensive-optimizations -funroll-loops
  LDFLAGS= -s
#  CC     = /opt/ibmcmp/vac/6.0/bin/xlc
#  CFLAGS = -c -O3 -qarch=auto -qtune=auto -qcache=auto -qhot
#  CFLAGS   = -c -O5 -qtune=g5 -qarch=g5 -qcache=auto  
#  LDFLAGS = -O5 -qtune=g5 -qarch=g5 -qcache=auto 
endif
ifeq ($(ARCHI), gccub)
  CC      = gcc
  CFLAGS  = -c -fast -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
  LDFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
endif
ifeq ($(ARCHI),win32)
  CC    = gcc
  CFLAGS= -c -O3 -mno-cygwin -Wuninitialized -Wunused -Winline -Wshadow
  LDFLAGS=-v -s -mno-cygwin
endif
ifeq ($(ARCHI),sparc)
  CC     = acc
  CFLAGS = -O4 -c -libmil -cg92
  LDFLAGS= -libmil -cg92
endif
ifeq ($(ARCHI), ia64)
  CC	 = c89
  CFLAGS = +Ofast +Odata_prefetch +Ofltacc +DSitanium -s
  LDFLAGS= -s -N +Oprocelim
endif
ifeq ($(ARCHI), mips)
  CC	 = c89
  CFLAGS = -O3
  LDFLAGS= -s
endif

# working dirs
EXEDIR = $(HOME)/bin/$(ARCHI)
SRCDIR = sources
OBJDIR = objects/$(ARCHI)
ARCDIR = archives
DIRDIR = objects $(EXEDIR) $(OBJDIR) $(ARCDIR)
INCDIR = -I$(HOME)/code/library.cur/sources/
LDLDIR = $(HOME)/code/library.cur/objects/$(ARCHI)/*.o
VPATH  = $(SRCDIR)

# objects list
src    = $(wildcard $(SRCDIR)/*.c)
header = $(wildcard $(SRCDIR)/*.h)
objs   = $(patsubst $(SRCDIR)%,$(OBJDIR)%,$(src:.c=.o))
prog   = yams2

#.SILENT:

$(OBJDIR)/%.o: $(SRCDIR)/%.c
	$(CC) $(OPT64)  $(INCDIR) $(CFLAGS) $< -o $@

$(EXEDIR)/$(prog):$(DIRDIR) $(objs) $(LDLDIR)
	echo "#define COMPIL " '"' `date` '"' > $(SRCDIR)/compil.date
	$(CC) -c $(CFLAGS) $(INCDIR) $(SRCDIR)/yams0.c -o $(OBJDIR)/yams0.o
	$(CC) $(LDFLAGS) $(OPT64) $(LDLDIR) $(objs) -o $@ -lm

$(objs):$(header)

$(DIRDIR):
	@[ -d $@ ] || mkdir $@

clean:
	-rm $(objs) $(EXEDIR)/$(prog)

tar:$(DIRDIR)
	tar czf $(ARCDIR)/$(prog).`date +"%Y.%m.%d"`.tgz sources makefile

target: $(EXEDIR)/$(prog)
