# configuration -include Make.config include mk/Variables.mk # QT/KDE dirs ifeq ($(QTDIR),) QTDIR := /usr foobar := $(shell echo "WARNING: QTDIR isn't set, assuming /usr" >&2) endif ifeq ($(KDEDIR),) KDEDIR := /usr foobar := $(shell echo "WARNING: KDEDIR isn't set, assuming /usr" >&2) endif prefix := $(KDEDIR) export QTDIR KDEDIR # kde install directories appsdir := $(DESTDIR)$(shell sh kdedirs apps)/Multimedia datadir := $(DESTDIR)$(shell sh kdedirs data)/krecord htmldir := $(DESTDIR)$(shell sh kdedirs html)/en/krecord # default target all: build ########################################################################## # fixup flags depending on the environment variables (QTDIR, KDEDIR) # X11R6 X11DIR := /usr/X11R6 CFLAGS += -I$(X11DIR)/include LDFLAGS += -L$(X11DIR)/$(LIB) # Qt ifeq ($(QTDIR),/usr) CFLAGS += -I/usr/include/qt else CFLAGS += -I$(QTDIR)/include LDFLAGS += -L$(QTDIR)/$(LIB) endif # KDE ifeq ($(KDEDIR),/usr) CFLAGS += -I/usr/include/kde else CFLAGS += -I$(KDEDIR)/include LDFLAGS += -L$(KDEDIR)/$(LIB) endif # version CFLAGS += -DKRECORD_VERSION='"$(VERSION)"' CFLAGS += -fno-strict-aliasing # fft code needs this ########################################################################## # poor man's autoconf include mk/Autoconf.mk define make-config LIB := $(LIB) HAVE_SOUNDCARD_H := $(call ac_header,soundcard.h) HAVE_SYS_SOUNDCARD_H := $(call ac_header,sys/soundcard.h) HAVE_SUN_AUDIOIO_H := $(call ac_header,sun/audioio.h) HAVE_LIBQT_MT := $(call ac_lib,qt_wm_state,qt-mt) endef # config conditionals includes := SOUNDCARD_H SYS_SOUNDCARD_H SUN_AUDIOIO_H inc_cflags := $(call ac_inc_cflags,$(includes)) CFLAGS += $(inc_cflags) ifeq ($(HAVE_LIBQT_MT),yes) QTLIB=-lqt-mt else QTLIB=-lqt endif ########################################################################## # my targets # krecord TARGET := krecord OBJS := krecord.o sound.o fft.o level.o buffer.o soundfft.o \ oss.o sunaudio.o SRCS := krecord.cpp sound.cpp fft.cpp level.cpp buffer.cpp soundfft.c \ oss.cpp sunaudio.cpp MOCS := krecord.moc sound.moc fft.moc level.moc buffer.moc \ oss.moc sunaudio.moc CXXFLAGS := $(CFLAGS) LDLIBS += -lkio -lkdecore $(QTLIB) -lXext -lXmu -lX11 # locales PO := $(wildcard po/*.po) MO := $(subst .po,.mo,$(PO)) MERGE := $(subst .po,.pox,$(PO)) LANGS := $(patsubst po/%.po,install-lang-%,$(PO)) build: $(TARGET) $(MO) $(TARGET): $(OBJS) install: install-bin $(LANGS) install-bin: $(TARGET) $(INSTALL_DIR) $(bindir) $(INSTALL_BINARY) $(TARGET) $(bindir) $(INSTALL_DIR) $(appsdir) $(INSTALL_DATA) krecord.desktop $(appsdir) $(INSTALL_DIR) $(datadir)/toolbar $(INSTALL_DATA) img/*.png $(datadir)/toolbar $(INSTALL_DIR) $(htmldir) $(INSTALL_DATA) index.html $(htmldir) install-lang-%: po/%.mo $(INSTALL_DIR) $(locdir)/$*/LC_MESSAGES $(INSTALL_DATA) $< $(locdir)/$*/LC_MESSAGES/krecord.mo clean: rm -f *.o $(depfiles) rm -f *.bak *~ *% core* "#*" rm -f po/*~ po/*.mo realclean distclean:: clean rm -f $(TARGET) $(MOCS) Make.config po/krecord.pot: $(SRCS) touch messages.po xgettext -sj --keyword=i18n $(SRCS) mv messages.po $@ locale: po/krecord.pot $(MERGE) ########################################################################## # some rules %.pox : %.po po/krecord.pot msgmerge $< po/krecord.pot > $@ buffer.o: buffer.moc fft.o: fft.moc krecord.o: krecord.moc level.o: level.moc oss.o: oss.moc sound.o: sound.moc sunaudio.o: sunaudio.moc include mk/Compile.mk include mk/Maintainer.mk -include $(depfiles)