#############################################################################
# Makefile for building ttnews
# Generated by tmake at 18:02, 1999/02/26
#     Project: ttnews
#    Template: app
# Note that this Makefile is "stolen" from the desktop-example that
# comes with QT. Modified, of course...
#############################################################################

####### System-dependendant options

ifndef QTDIR
QTDIR	= /usr/lib/qt
endif

ifndef MOCDIR
MOCDIR	= /usr/bin
endif

INSTALL_PREFIX=/usr/share
BIN_DIR_PREFIX=/usr

RPM_INSTALL_DIR=/usr/src/redhat/SOURCES

####### BEGIN
#
#   This section was automatically generated from
#      /usr/src/bs/BUILD/qt-1.44/Makefile for building on
#       on Sun Apr 18 00:07:12 EDT 1999
#
# Compiling
SYSCONF_CXX		= g++

# Compiling with support libraries
SYSCONF_CXXFLAGS_X11	= -I/usr/X11R6/include
SYSCONF_CXXFLAGS_QT	= -I$(QTDIR)/include

SYSCONF_CXXFLAGS_OPENGL	= -I/usr/X11R6/include

# Compiline YACC output
SYSCONF_CXXFLAGS_YACC     = -Wno-unused -Wno-parentheses

# Linking with support libraries
# X11
SYSCONF_LFLAGS_X11	= -L/usr/X11R6/lib
SYSCONF_LIBS_X11	= -lX11 -lXext
# Qt, Qt+OpenGL
SYSCONF_LFLAGS_QT	= -L$(QTDIR)/lib
SYSCONF_LIBS_QT		= -lqt
SYSCONF_LIBS_QT_OPENGL	= -lqgl
# OpenGL
SYSCONF_LFLAGS_OPENGL	= -L/usr/X11R6/lib
SYSCONF_LIBS_OPENGL	= -lMesaGL -lMesaGLU -lXmu -lXext -lm
# Yacc
SYSCONF_LIBS_YACC	= 

# Linking applications
SYSCONF_LINK		= g++
SYSCONF_LFLAGS		= 
SYSCONF_LIBS		= 

# Link flags shared objects
SYSCONF_LFLAGS_SHOBJ	= -shared

# Meta-object compiler
SYSCONF_MOC		=  $(MOCDIR)/moc

# Linking shared libraries
#   - Build the $(TARGET) library, eg. lib$(TARGET).so.0.0
#   - Place target in $(DESTDIR) - which has a trailing /
#   - Usually needs to incorporate $(VER_MAJ) and $(VER_MIN)
#
SYSCONF_LINK_SHLIB	= g++
SYSCONF_LINK_TARGET_SHARED	= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
SYSCONF_LINK_LIB_SHARED	=  $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \
				     $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
				     $(OBJECTS) $(OBJMOC) $(LIBS); \
				 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
				 cd $(DESTDIR); \
				 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \
				 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
				 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ)

# Linking static libraries
#   - Build the $(TARGET) library, eg. lib$(TARGET).a
#   - Place target in $(DESTDIR) - which has a trailing /
#
SYSCONF_AR		= ar cqs
SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
SYSCONF_LINK_LIB_STATIC	= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
				 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC) 
# Compiling application source
SYSCONF_CXXFLAGS	= -g -pipe -O3 -fno-strength-reduce -pedantic
# Compiling library source
SYSCONF_CXXFLAGS_LIB	= -O2 -fno-strength-reduce -fPIC
# Compiling shared-object source
SYSCONF_CXXFLAGS_SHOBJ	= -O2 -fno-strength-reduce -fPIC
SYSCONF_LINK_LIB	= $(SYSCONF_LINK_LIB_STATIC)
SYSCONF_LINK_TARGET	= $(SYSCONF_LINK_TARGET_STATIC)

####### End of automatically generated section
####### END

####### Compiler, tools and options

CXX	=	$(SYSCONF_CXX)
CXXFLAGS=	$(SYSCONF_CXXFLAGS_QT) $(SYSCONF_CXXFLAGS)
LFLAGS	=	$(SYSCONF_LFLAGS_QT) $(SYSCONF_LFLAGS_X11) $(SYSCONF_LFLAGS)
LIBS	=	$(SYSCONF_LIBS_QT) $(SYSCONF_LIBS_X11) $(SYSCONF_LIBS)
MOC	=	$(SYSCONF_MOC)

####### Target

TARGET	= ttnews
DESTDIR = ./
VERSION	= 1.0.0
VER_MAJ = 1.0
VER_MIN = 0

####### Files
BINS	= 	ttnews \
		feeders/ttServer \
		feeders/bbcServer \
		feeders/freshmeatServer \
		feeders/slashdotServer \
		feeders/heiseServer \
		feeders/linuxtodayServer \
		feeders/rainews24ItaliaServer \
		feeders/rainews24MondoServer \
		feeders/theregisterServer

MISCFILES = 	README.PROGRAMMERS \
		README \
		BUGS \
		INSTALL \
		CHANGES \
		TODO \
		COPYING \
		ttnews.conf \
		ttnews.lsm

HEADERS =	readConfig.h \
		ttnews.h \
		newsWidget.h \
		allNewsWidget.h \
		newsTable.h \
		newsItem.h \
		listItem.h \
		pixmapButton.h \
		parseNews.h \
		config.h

SOURCES =	readConfig.c \
		newsWidget.cpp \
		ttnews.cpp \
		newsTable.cpp \
		newsItem.cpp \
		listItem.cpp \
		allNewsWidget.cpp \
		pixmapButton.cpp \
		parseNews.cpp 

OBJECTS =	readConfig.o \
		newsWidget.o \
		newsItem.o \
		listItem.o \
		newsTable.o \
		ttnews.o \
		allNewsWidget.o \
		pixmapButton.o \
		parseNews.o 

SRCMOC	=	moc_ttnews.cpp \
		moc_allNewsWidget.cpp

OBJMOC	=	moc_ttnews.o \
		moc_allNewsWidget.o

SRCS	=	*.cpp *.h *.c

####### Implicit rules

.SUFFIXES: .cpp .cxx .cc .C .c

.cpp.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cc.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.C.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

####### Build rules

all: $(DESTDIR)$(TARGET)


$(DESTDIR)$(TARGET): $(OBJECTS) $(OBJMOC) 
	$(SYSCONF_LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
	cd feeders && $(MAKE)

moc: $(SRCMOC)

tmake:
	tmake ttnews.pro

clean:
	-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC)
	-rm -f *~ core

#Make a tar.gz with a new distribution
dist:	clean
	rm -r -f ttnews-$(VERSION)
	rm -r -f ttnews-$(VERSION).tar.gz
	mkdir ttnews-$(VERSION)
	cp -r skins ttnews-$(VERSION)
	cp -r feeds ttnews-$(VERSION)
	cp $(HEADERS) ttnews-$(VERSION)
	cp $(SOURCES) ttnews-$(VERSION)
	cp $(MISCFILES) ttnews-$(VERSION)
	cp fetchNewsOnce ttnews-$(VERSION)
	cp fetchAllNews ttnews-$(VERSION)

	cp Makefile ttnews-$(VERSION)	
	cd feeders && $(MAKE) dist
	tar -cvzf ttnews-$(VERSION).tar.gz ttnews-$(VERSION)

#Compile a RPM distribution
rpmdist: dist
	rm -f $(RPM_INSTALL_DIR)/ttnews-$(VERSION).tar.gz
	cp ttnews-$(VERSION).tar.gz $(RPM_INSTALL_DIR)
	rpm -ba ttnews.spec

#install the whole thing (classic way)
install: ttnews
	strip $(BINS)

	install -s -m 755 -o 0 -g 0 $(BINS) $(BIN_DIR_PREFIX)/bin
	install -s -m 755 -o 0 -g 0 fetchNewsOnce $(BIN_DIR_PREFIX)/bin
	install -s -m 755 -o 0 -g 0 fetchAllNews $(BIN_DIR_PREFIX)/bin
	install -d $(INSTALL_PREFIX)/ttnews
	install -m 644 ttnews.conf $(INSTALL_PREFIX)/ttnews
	cp -r skins $(INSTALL_PREFIX)/ttnews  # Skins
	cp -r feeds $(INSTALL_PREFIX)/ttnews 
#REMOVE THIS:
	@echo ""
	@echo "The program is now installed. Run ttnews to test it,"
	@echo "and then run the servers (or the script fetchAllNews"
	@echo "installed in $(BIN_DIR_PREFIX)/bin) to get new news-items."
	@echo ""
	@echo "run ""make uninstall"" to uninstall the program. Note"
	@echo "that ""make uninstall"" won't remove the .ttnews-dirs"
	@echo "in the users homes."

uninstall:
	rm -f $(BIN_DIR_PREFIX)/bin/ttnews
	rm -f $(BIN_DIR_PREFIX)/bin/fetchNewsOnce
	rm -f $(BIN_DIR_PREFIX)/bin/fetchAllNews

	rm -f $(BIN_DIR_PREFIX)/bin/ttServer
	rm -f $(BIN_DIR_PREFIX)/bin/bbcServer
	rm -f $(BIN_DIR_PREFIX)/bin/slashdotServer
	rm -f $(BIN_DIR_PREFIX)/bin/freshmeatServer
	rm -f $(BIN_DIR_PREFIX)/bin/linuxtodayServer
	rm -f $(BIN_DIR_PREFIX)/bin/heiseServer
	rm -f $(BIN_DIR_PREFIX)/bin/theregisterServer
	rm -f $(BIN_DIR_PREFIX)/bin/rainews24ItaliaServer
	rm -f $(BIN_DIR_PREFIX)/bin/rainews24MondoServer
	rm -R $(INSTALL_PREFIX)/ttnews 

	@echo ""
	@echo "The program is now uninstalled, note that you have to"
	@echo "remove the .ttnews-dirs in the users homes manually."



####### Compile

readConfig.o: readConfig.c \
		readConfig.h

pixmapButton.o: pixmapButton.cpp \
		pixmapButton.h

newsItem.o: newsItem.cpp \
		newsItem.h

listItem.o: listItem.cpp \
		listItem.h

newsTable.o: newsTable.cpp \
		newsTable.h

allNewsWidget.o: allNewsWidget.cpp \
		allNewsWidget.h

ttnews.o: ttnews.cpp \
		ttnews.h

parseNews.o: parseNews.cpp \
		parseNews.h

moc_ttnews.o: moc_ttnews.cpp \
		ttnews.h

moc_allNewsWidget.o: moc_allNewsWidget.cpp \
		allNewsWidget.h

moc_ttnews.cpp: ttnews.h
	$(MOC) ttnews.h -o moc_ttnews.cpp

moc_allNewsWidget.cpp: allNewsWidget.h
	$(MOC) allNewsWidget.h -o moc_allNewsWidget.cpp








