The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#PLEASE NOTE: this Makefile was designed to be compatible with GNU make and dmake

CC       = gcc
AR       = ar
ARFLAGS  = csr
PERL     = perl

CP     = $(PERL) -MExtUtils::Command -e cp --
RM_F   = $(PERL) -MExtUtils::Command -e rm_f --
MKPATH = $(PERL) -MExtUtils::Command -e mkpath --

### GLOBAL PART ###

BUILDBITS= 32
BUILDNICK= mingw

PREFIX   = ../_output_
INCDIR   = $(PREFIX)/include
LIBDIR   = $(PREFIX)/lib

CF_ALL   = -DTEC_UNAME=gcc4 -DTEC_SYSNAME=Win$(BUILDBITS) -DTEC_LITTLEENDIAN -DTEC_$(BUILDBITS) -DWIN32 -DNDEBUG -I"$(INCDIR)"
LF_ALL   = -L./lib/$(BUILDNICK) -L"$(LIBDIR)"

VER_OBJ      = version.o
VER_RC       = version.rc

BUILD_DIRS   = ./obj/$(BUILDNICK)/iup ./obj/$(BUILDNICK)/iupcd ./obj/$(BUILDNICK)/iupcontrols ./obj/$(BUILDNICK)/iup_pplot ./obj/$(BUILDNICK)/iup_mglplot ./obj/$(BUILDNICK)/iupgl ./obj/$(BUILDNICK)/iupim ./obj/$(BUILDNICK)/iupimglib ./obj/$(BUILDNICK)/iupole ./obj/$(BUILDNICK)/iuptuio ./lib/$(BUILDNICK)

ALL_OBJS     = $(OBJS_iup) $(OBJS_iupcd) $(OBJS_iupcontrols) $(OBJS_iup_pplot) $(OBJS_iup_mglplot) $(OBJS_iupgl) $(OBJS_iupim) $(OBJS_iupimglib) $(OBJS_iupole) $(OBJS_iuptuio)

STATIC_LIBS  = $(SLIB_iup) $(SLIB_iupcd) $(SLIB_iupcontrols) $(SLIB_iup_pplot) $(SLIB_iup_mglplot) $(SLIB_iupgl) $(SLIB_iupim) $(SLIB_iupimglib) $(SLIB_iupole) $(SLIB_iuptuio)

DYNAMIC_LIBS = $(DLIB_iup) $(ILIB_iup) $(DLIB_iupcd) $(ILIB_iupcd) $(DLIB_iupcontrols) $(ILIB_iupcontrols) $(DLIB_iup_pplot) $(ILIB_iup_pplot) $(DLIB_iup_mglplot) $(ILIB_iup_mglplot) $(DLIB_iupgl) $(ILIB_iupgl) $(DLIB_iupim) $(ILIB_iupim) $(DLIB_iupimglib) $(ILIB_iupimglib) $(DLIB_iupole) $(ILIB_iupole) $(DLIB_iuptuio) $(ILIB_iuptuio)

ALL_LIBS     = $(STATIC_LIBS) $(DYNAMIC_LIBS)

.PHONY: install-all install-static install-dynamic all all-static all-dynamic clean build-dirs

all: all-static all-dynamic


### START OF iup ###
CF_iup   = -c  -Wall -O2 -Iinclude -Isrc -Isrc/win -Ietc   -D_WIN32_WINNT=0x0501 -D_WIN32_IE=0x0501 -DWINVER=0x0501 -DNOTREEVIEW -DIUP_DLL $(CF_iup_EXTRA)
LF_iup   = -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iup_EXTRA)
SLIB_iup = ./lib/$(BUILDNICK)/libiup.a
DLIB_iup = ./lib/$(BUILDNICK)/libiup.dll.a
ILIB_iup = ./lib/$(BUILDNICK)/iup_alien_.dll
OBJS_iup = ./obj/$(BUILDNICK)/iup/iup_array.o ./obj/$(BUILDNICK)/iup/iup_callback.o ./obj/$(BUILDNICK)/iup/iup_dlglist.o ./obj/$(BUILDNICK)/iup/iup_attrib.o ./obj/$(BUILDNICK)/iup/iup_focus.o ./obj/$(BUILDNICK)/iup/iup_font.o ./obj/$(BUILDNICK)/iup/iup_globalattrib.o ./obj/$(BUILDNICK)/iup/iup_object.o ./obj/$(BUILDNICK)/iup/iup_key.o ./obj/$(BUILDNICK)/iup/iup_layout.o ./obj/$(BUILDNICK)/iup/iup_ledlex.o ./obj/$(BUILDNICK)/iup/iup_names.o ./obj/$(BUILDNICK)/iup/iup_open.o ./obj/$(BUILDNICK)/iup/iup_ledparse.o ./obj/$(BUILDNICK)/iup/iup_predialogs.o ./obj/$(BUILDNICK)/iup/iup_register.o ./obj/$(BUILDNICK)/iup/iup_scanf.o ./obj/$(BUILDNICK)/iup/iup_show.o ./obj/$(BUILDNICK)/iup/iup_str.o ./obj/$(BUILDNICK)/iup/iup_table.o ./obj/$(BUILDNICK)/iup/iup_func.o ./obj/$(BUILDNICK)/iup/iup_childtree.o ./obj/$(BUILDNICK)/iup/iup.o ./obj/$(BUILDNICK)/iup/iup_classattrib.o ./obj/$(BUILDNICK)/iup/iup_dialog.o ./obj/$(BUILDNICK)/iup/iup_assert.o ./obj/$(BUILDNICK)/iup/iup_canvas.o ./obj/$(BUILDNICK)/iup/iup_messagedlg.o ./obj/$(BUILDNICK)/iup/iup_timer.o ./obj/$(BUILDNICK)/iup/iup_image.o ./obj/$(BUILDNICK)/iup/iup_label.o ./obj/$(BUILDNICK)/iup/iup_fill.o ./obj/$(BUILDNICK)/iup/iup_zbox.o ./obj/$(BUILDNICK)/iup/iup_colordlg.o ./obj/$(BUILDNICK)/iup/iup_fontdlg.o ./obj/$(BUILDNICK)/iup/iup_filedlg.o ./obj/$(BUILDNICK)/iup/iup_strmessage.o ./obj/$(BUILDNICK)/iup/iup_menu.o ./obj/$(BUILDNICK)/iup/iup_frame.o ./obj/$(BUILDNICK)/iup/iup_user.o ./obj/$(BUILDNICK)/iup/iup_button.o ./obj/$(BUILDNICK)/iup/iup_radio.o ./obj/$(BUILDNICK)/iup/iup_toggle.o ./obj/$(BUILDNICK)/iup/iup_progressbar.o ./obj/$(BUILDNICK)/iup/iup_text.o ./obj/$(BUILDNICK)/iup/iup_val.o ./obj/$(BUILDNICK)/iup/iup_box.o ./obj/$(BUILDNICK)/iup/iup_hbox.o ./obj/$(BUILDNICK)/iup/iup_vbox.o ./obj/$(BUILDNICK)/iup/iup_cbox.o ./obj/$(BUILDNICK)/iup/iup_class.o ./obj/$(BUILDNICK)/iup/iup_classbase.o ./obj/$(BUILDNICK)/iup/iup_maskmatch.o ./obj/$(BUILDNICK)/iup/iup_mask.o ./obj/$(BUILDNICK)/iup/iup_maskparse.o ./obj/$(BUILDNICK)/iup/iup_tabs.o ./obj/$(BUILDNICK)/iup/iup_spin.o ./obj/$(BUILDNICK)/iup/iup_list.o ./obj/$(BUILDNICK)/iup/iup_getparam.o ./obj/$(BUILDNICK)/iup/iup_sbox.o ./obj/$(BUILDNICK)/iup/iup_normalizer.o ./obj/$(BUILDNICK)/iup/iup_tree.o ./obj/$(BUILDNICK)/iup/iup_split.o ./obj/$(BUILDNICK)/iup/iup_layoutdlg.o ./obj/$(BUILDNICK)/iup/iup_recplay.o ./obj/$(BUILDNICK)/iup/iupwin_common.o ./obj/$(BUILDNICK)/iup/iupwin_brush.o ./obj/$(BUILDNICK)/iup/iupwin_focus.o ./obj/$(BUILDNICK)/iup/iupwin_font.o ./obj/$(BUILDNICK)/iup/iupwin_globalattrib.o ./obj/$(BUILDNICK)/iup/iupwin_handle.o ./obj/$(BUILDNICK)/iup/iupwin_key.o ./obj/$(BUILDNICK)/iup/iupwin_loop.o ./obj/$(BUILDNICK)/iup/iupwin_open.o ./obj/$(BUILDNICK)/iup/iupwin_tips.o ./obj/$(BUILDNICK)/iup/iupwin_info.o ./obj/$(BUILDNICK)/iup/iupwin_dialog.o ./obj/$(BUILDNICK)/iup/iupwin_messagedlg.o ./obj/$(BUILDNICK)/iup/iupwin_timer.o ./obj/$(BUILDNICK)/iup/iupwin_image.o ./obj/$(BUILDNICK)/iup/iupwin_label.o ./obj/$(BUILDNICK)/iup/iupwin_canvas.o ./obj/$(BUILDNICK)/iup/iupwin_frame.o ./obj/$(BUILDNICK)/iup/iupwin_colordlg.o ./obj/$(BUILDNICK)/iup/iupwin_fontdlg.o ./obj/$(BUILDNICK)/iup/iupwin_filedlg.o ./obj/$(BUILDNICK)/iup/iupwin_dragdrop.o ./obj/$(BUILDNICK)/iup/iupwin_button.o ./obj/$(BUILDNICK)/iup/iupwin_draw.o ./obj/$(BUILDNICK)/iup/iupwin_toggle.o ./obj/$(BUILDNICK)/iup/iupwin_clipboard.o ./obj/$(BUILDNICK)/iup/iupwin_progressbar.o ./obj/$(BUILDNICK)/iup/iupwin_text.o ./obj/$(BUILDNICK)/iup/iupwin_val.o ./obj/$(BUILDNICK)/iup/iupwin_touch.o ./obj/$(BUILDNICK)/iup/iupwin_tabs.o ./obj/$(BUILDNICK)/iup/iupwin_menu.o ./obj/$(BUILDNICK)/iup/iupwin_list.o ./obj/$(BUILDNICK)/iup/iupwin_tree.o ./obj/$(BUILDNICK)/iup/iupwindows_main.o ./obj/$(BUILDNICK)/iup/iupwindows_help.o ./obj/$(BUILDNICK)/iup/iupwindows_info.o

./obj/$(BUILDNICK)/iup/iup_array.o : src/iup_array.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_callback.o : src/iup_callback.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_dlglist.o : src/iup_dlglist.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_attrib.o : src/iup_attrib.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_focus.o : src/iup_focus.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_font.o : src/iup_font.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_globalattrib.o : src/iup_globalattrib.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_object.o : src/iup_object.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_key.o : src/iup_key.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_layout.o : src/iup_layout.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_ledlex.o : src/iup_ledlex.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_names.o : src/iup_names.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_open.o : src/iup_open.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_ledparse.o : src/iup_ledparse.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_predialogs.o : src/iup_predialogs.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_register.o : src/iup_register.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_scanf.o : src/iup_scanf.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_show.o : src/iup_show.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_str.o : src/iup_str.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_table.o : src/iup_table.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_func.o : src/iup_func.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_childtree.o : src/iup_childtree.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup.o : src/iup.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_classattrib.o : src/iup_classattrib.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_dialog.o : src/iup_dialog.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_assert.o : src/iup_assert.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_canvas.o : src/iup_canvas.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_messagedlg.o : src/iup_messagedlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_timer.o : src/iup_timer.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_image.o : src/iup_image.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_label.o : src/iup_label.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_fill.o : src/iup_fill.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_zbox.o : src/iup_zbox.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_colordlg.o : src/iup_colordlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_fontdlg.o : src/iup_fontdlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_filedlg.o : src/iup_filedlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_strmessage.o : src/iup_strmessage.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_menu.o : src/iup_menu.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_frame.o : src/iup_frame.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_user.o : src/iup_user.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_button.o : src/iup_button.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_radio.o : src/iup_radio.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_toggle.o : src/iup_toggle.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_progressbar.o : src/iup_progressbar.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_text.o : src/iup_text.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_val.o : src/iup_val.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_box.o : src/iup_box.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_hbox.o : src/iup_hbox.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_vbox.o : src/iup_vbox.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_cbox.o : src/iup_cbox.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_class.o : src/iup_class.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_classbase.o : src/iup_classbase.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_maskmatch.o : src/iup_maskmatch.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_mask.o : src/iup_mask.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_maskparse.o : src/iup_maskparse.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_tabs.o : src/iup_tabs.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_spin.o : src/iup_spin.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_list.o : src/iup_list.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_getparam.o : src/iup_getparam.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_sbox.o : src/iup_sbox.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_normalizer.o : src/iup_normalizer.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_tree.o : src/iup_tree.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_split.o : src/iup_split.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_layoutdlg.o : src/iup_layoutdlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_recplay.o : src/iup_recplay.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_common.o : src/win/iupwin_common.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_brush.o : src/win/iupwin_brush.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_focus.o : src/win/iupwin_focus.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_font.o : src/win/iupwin_font.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_globalattrib.o : src/win/iupwin_globalattrib.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_handle.o : src/win/iupwin_handle.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_key.o : src/win/iupwin_key.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_loop.o : src/win/iupwin_loop.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_open.o : src/win/iupwin_open.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_tips.o : src/win/iupwin_tips.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_info.o : src/win/iupwin_info.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_dialog.o : src/win/iupwin_dialog.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_messagedlg.o : src/win/iupwin_messagedlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_timer.o : src/win/iupwin_timer.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_image.o : src/win/iupwin_image.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_label.o : src/win/iupwin_label.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_canvas.o : src/win/iupwin_canvas.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_frame.o : src/win/iupwin_frame.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_colordlg.o : src/win/iupwin_colordlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_fontdlg.o : src/win/iupwin_fontdlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_filedlg.o : src/win/iupwin_filedlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_dragdrop.o : src/win/iupwin_dragdrop.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_button.o : src/win/iupwin_button.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_draw.o : src/win/iupwin_draw.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_toggle.o : src/win/iupwin_toggle.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_clipboard.o : src/win/iupwin_clipboard.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_progressbar.o : src/win/iupwin_progressbar.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_text.o : src/win/iupwin_text.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_val.o : src/win/iupwin_val.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_touch.o : src/win/iupwin_touch.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_tabs.o : src/win/iupwin_tabs.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_menu.o : src/win/iupwin_menu.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_list.o : src/win/iupwin_list.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_tree.o : src/win/iupwin_tree.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwindows_main.o : src/win/iupwindows_main.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwindows_help.o : src/win/iupwindows_help.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwindows_info.o : src/win/iupwindows_info.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@

$(SLIB_iup): $(OBJS_iup)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iup) $(DLIB_iup) : $(OBJS_iup)
	g++ -s -shared -o $(ILIB_iup) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iup) $(LF_iup) $(LF_ALL)
	-strip $(ILIB_iup)

iup-static: build-dirs $(SLIB_iup)
iup-dynamic: build-dirs $(ILIB_iup) $(DLIB_iup)

### START OF iupcd ###
CF_iupcd   = -c  -Wall -O2 -Iinclude -I../cd/include   -DCD_NO_OLD_INTERFACE $(CF_iupcd_EXTRA)
LF_iupcd   = -L../cd/lib/$(BUILDNICK) -liup -lcd -lfreetype6 -lzlib1 -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iupcd_EXTRA)
SLIB_iupcd = ./lib/$(BUILDNICK)/libiupcd.a
DLIB_iupcd = ./lib/$(BUILDNICK)/libiupcd.dll.a
ILIB_iupcd = ./lib/$(BUILDNICK)/iupcd_alien_.dll
OBJS_iupcd = ./obj/$(BUILDNICK)/iupcd/iup_cd.o

./obj/$(BUILDNICK)/iupcd/iup_cd.o : srccd/iup_cd.c ; gcc $(CF_ALL) $(CF_iupcd) $^ -o $@

$(SLIB_iupcd): $(OBJS_iupcd)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iupcd) $(DLIB_iupcd) : $(OBJS_iupcd)
	g++ -s -shared -o $(ILIB_iupcd) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iupcd) $(LF_iupcd) $(LF_ALL)
	-strip $(ILIB_iupcd)

iupcd-static: build-dirs $(SLIB_iupcd)
iupcd-dynamic: build-dirs $(ILIB_iupcd) $(DLIB_iupcd)

### START OF iupcontrols ###
CF_iupcontrols   = -c  -Wall -O2 -Iinclude -Isrc -Isrccontrols -I../cd/include    $(CF_iupcontrols_EXTRA)
LF_iupcontrols   = -L../cd/lib/$(BUILDNICK) -liup -liupcd -lcd -lfreetype6 -lzlib1 -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iupcontrols_EXTRA)
SLIB_iupcontrols = ./lib/$(BUILDNICK)/libiupcontrols.a
DLIB_iupcontrols = ./lib/$(BUILDNICK)/libiupcontrols.dll.a
ILIB_iupcontrols = ./lib/$(BUILDNICK)/iupcontrols_alien_.dll
OBJS_iupcontrols = ./obj/$(BUILDNICK)/iupcontrols/iup_cdutil.o ./obj/$(BUILDNICK)/iupcontrols/iup_gauge.o ./obj/$(BUILDNICK)/iupcontrols/iup_cells.o ./obj/$(BUILDNICK)/iupcontrols/iup_colorbar.o ./obj/$(BUILDNICK)/iupcontrols/iup_controls.o ./obj/$(BUILDNICK)/iupcontrols/iup_dial.o ./obj/$(BUILDNICK)/iupcontrols/iup_oldmask.o ./obj/$(BUILDNICK)/iupcontrols/iup_colorbrowser.o ./obj/$(BUILDNICK)/iupcontrols/iup_colorhsi.o ./obj/$(BUILDNICK)/iupcontrols/iup_colorbrowserdlg.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_key.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_mark.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_aux.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_mem.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_mouse.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_numlc.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_colres.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_draw.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_getset.o ./obj/$(BUILDNICK)/iupcontrols/iupmatrix.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_scroll.o ./obj/$(BUILDNICK)/iupcontrols/iupmat_edit.o

./obj/$(BUILDNICK)/iupcontrols/iup_cdutil.o : srccontrols/iup_cdutil.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_gauge.o : srccontrols/iup_gauge.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_cells.o : srccontrols/iup_cells.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_colorbar.o : srccontrols/iup_colorbar.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_controls.o : srccontrols/iup_controls.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_dial.o : srccontrols/iup_dial.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_oldmask.o : srccontrols/iup_oldmask.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_colorbrowser.o : srccontrols/color/iup_colorbrowser.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_colorhsi.o : srccontrols/color/iup_colorhsi.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iup_colorbrowserdlg.o : srccontrols/color/iup_colorbrowserdlg.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_key.o : srccontrols/matrix/iupmat_key.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_mark.o : srccontrols/matrix/iupmat_mark.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_aux.o : srccontrols/matrix/iupmat_aux.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_mem.o : srccontrols/matrix/iupmat_mem.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_mouse.o : srccontrols/matrix/iupmat_mouse.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_numlc.o : srccontrols/matrix/iupmat_numlc.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_colres.o : srccontrols/matrix/iupmat_colres.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_draw.o : srccontrols/matrix/iupmat_draw.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_getset.o : srccontrols/matrix/iupmat_getset.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmatrix.o : srccontrols/matrix/iupmatrix.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_scroll.o : srccontrols/matrix/iupmat_scroll.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@
./obj/$(BUILDNICK)/iupcontrols/iupmat_edit.o : srccontrols/matrix/iupmat_edit.c ; gcc $(CF_ALL) $(CF_iupcontrols) $^ -o $@

$(SLIB_iupcontrols): $(OBJS_iupcontrols)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iupcontrols) $(DLIB_iupcontrols) : $(OBJS_iupcontrols)
	g++ -s -shared -o $(ILIB_iupcontrols) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iupcontrols) $(LF_iupcontrols) $(LF_ALL)
	-strip $(ILIB_iupcontrols)

iupcontrols-static: build-dirs $(SLIB_iupcontrols)
iupcontrols-dynamic: build-dirs $(ILIB_iupcontrols) $(DLIB_iupcontrols)

### START OF iup_pplot ###
CF_iup_pplot   = -c  -Wall -O2 -Iinclude -Isrc -I../cd/include   -D_IUP_PPLOT_ -DCD_NO_OLD_INTERFACE $(CF_iup_pplot_EXTRA)
LF_iup_pplot   = -L../cd/lib/$(BUILDNICK) -liup -liupcd -lcd -lfreetype6 -lzlib1 -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iup_pplot_EXTRA)
SLIB_iup_pplot = ./lib/$(BUILDNICK)/libiup_pplot.a
DLIB_iup_pplot = ./lib/$(BUILDNICK)/libiup_pplot.dll.a
ILIB_iup_pplot = ./lib/$(BUILDNICK)/iup_pplot_alien_.dll
OBJS_iup_pplot = ./obj/$(BUILDNICK)/iup_pplot/iupPPlot.o ./obj/$(BUILDNICK)/iup_pplot/iupPPlotInteraction.o ./obj/$(BUILDNICK)/iup_pplot/iup_pplot.o

./obj/$(BUILDNICK)/iup_pplot/iupPPlot.o : srcpplot/iupPPlot.cpp ; g++ $(CF_ALL) $(CF_iup_pplot) $^ -o $@
./obj/$(BUILDNICK)/iup_pplot/iupPPlotInteraction.o : srcpplot/iupPPlotInteraction.cpp ; g++ $(CF_ALL) $(CF_iup_pplot) $^ -o $@
./obj/$(BUILDNICK)/iup_pplot/iup_pplot.o : srcpplot/iup_pplot.cpp ; g++ $(CF_ALL) $(CF_iup_pplot) $^ -o $@

$(SLIB_iup_pplot): $(OBJS_iup_pplot)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iup_pplot) $(DLIB_iup_pplot) : $(OBJS_iup_pplot)
	g++ -s -shared -o $(ILIB_iup_pplot) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iup_pplot) $(LF_iup_pplot) $(LF_ALL)
	-strip $(ILIB_iup_pplot)

iup_pplot-static: build-dirs $(SLIB_iup_pplot)
iup_pplot-dynamic: build-dirs $(ILIB_iup_pplot) $(DLIB_iup_pplot)

### START OF iup_mglplot ###
CF_iup_mglplot   = -c  -Wall -O2 -Iinclude -Isrc -Isrcmglplot -Isrcmglplot/ftgl -Isrcmglplot/freetype   -DFTGL_LIBRARY_STATIC -DNO_PNG -DNO_GSL $(CF_iup_mglplot_EXTRA)
LF_iup_mglplot   = -liup -liupgl -lfreetype6 -lglaux -lglu32 -lopengl32 -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iup_mglplot_EXTRA)
SLIB_iup_mglplot = ./lib/$(BUILDNICK)/libiup_mglplot.a
DLIB_iup_mglplot = ./lib/$(BUILDNICK)/libiup_mglplot.dll.a
ILIB_iup_mglplot = ./lib/$(BUILDNICK)/iup_mglplot_alien_.dll
OBJS_iup_mglplot = ./obj/$(BUILDNICK)/iup_mglplot/iup_mglplot.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_makefont.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_1d.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_crust.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_evalc.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_2d.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_data.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_evalp.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_main.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_3d.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_data_cf.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_exec.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_parse.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_ab.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_data_io.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_export.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_pde.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_addon.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_data_png.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_fit.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_tex_table.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_axis.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_def_font.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_flow.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_vect.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_combi.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_eps.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_font.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_zb.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_cont.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_eval.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_gl.o ./obj/$(BUILDNICK)/iup_mglplot/mgl_zb2.o ./obj/$(BUILDNICK)/iup_mglplot/FTGlyph.o ./obj/$(BUILDNICK)/iup_mglplot/FTFont.o ./obj/$(BUILDNICK)/iup_mglplot/FTCharmap.o ./obj/$(BUILDNICK)/iup_mglplot/FTContour.o ./obj/$(BUILDNICK)/iup_mglplot/FTFace.o ./obj/$(BUILDNICK)/iup_mglplot/FTGlyphContainer.o ./obj/$(BUILDNICK)/iup_mglplot/FTLibrary.o ./obj/$(BUILDNICK)/iup_mglplot/FTPoint.o ./obj/$(BUILDNICK)/iup_mglplot/FTSize.o ./obj/$(BUILDNICK)/iup_mglplot/FTVectoriser.o

./obj/$(BUILDNICK)/iup_mglplot/iup_mglplot.o : srcmglplot/iup_mglplot.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_makefont.o : srcmglplot/mgl_makefont.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_1d.o : srcmglplot/mgl/mgl_1d.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_crust.o : srcmglplot/mgl/mgl_crust.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_evalc.o : srcmglplot/mgl/mgl_evalc.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_2d.o : srcmglplot/mgl/mgl_2d.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_data.o : srcmglplot/mgl/mgl_data.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_evalp.o : srcmglplot/mgl/mgl_evalp.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_main.o : srcmglplot/mgl/mgl_main.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_3d.o : srcmglplot/mgl/mgl_3d.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_data_cf.o : srcmglplot/mgl/mgl_data_cf.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_exec.o : srcmglplot/mgl/mgl_exec.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_parse.o : srcmglplot/mgl/mgl_parse.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_ab.o : srcmglplot/mgl/mgl_ab.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_data_io.o : srcmglplot/mgl/mgl_data_io.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_export.o : srcmglplot/mgl/mgl_export.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_pde.o : srcmglplot/mgl/mgl_pde.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_addon.o : srcmglplot/mgl/mgl_addon.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_data_png.o : srcmglplot/mgl/mgl_data_png.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_fit.o : srcmglplot/mgl/mgl_fit.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_tex_table.o : srcmglplot/mgl/mgl_tex_table.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_axis.o : srcmglplot/mgl/mgl_axis.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_def_font.o : srcmglplot/mgl/mgl_def_font.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_flow.o : srcmglplot/mgl/mgl_flow.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_vect.o : srcmglplot/mgl/mgl_vect.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_combi.o : srcmglplot/mgl/mgl_combi.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_eps.o : srcmglplot/mgl/mgl_eps.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_font.o : srcmglplot/mgl/mgl_font.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_zb.o : srcmglplot/mgl/mgl_zb.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_cont.o : srcmglplot/mgl/mgl_cont.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_eval.o : srcmglplot/mgl/mgl_eval.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_gl.o : srcmglplot/mgl/mgl_gl.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/mgl_zb2.o : srcmglplot/mgl/mgl_zb2.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTGlyph.o : srcmglplot/ftgl/FTGlyph/FTGlyph.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTFont.o : srcmglplot/ftgl/FTFont/FTFont.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTCharmap.o : srcmglplot/ftgl/FTCharmap.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTContour.o : srcmglplot/ftgl/FTContour.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTFace.o : srcmglplot/ftgl/FTFace.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTGlyphContainer.o : srcmglplot/ftgl/FTGlyphContainer.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTLibrary.o : srcmglplot/ftgl/FTLibrary.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTPoint.o : srcmglplot/ftgl/FTPoint.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTSize.o : srcmglplot/ftgl/FTSize.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@
./obj/$(BUILDNICK)/iup_mglplot/FTVectoriser.o : srcmglplot/ftgl/FTVectoriser.cpp ; g++ $(CF_ALL) $(CF_iup_mglplot) $^ -o $@

$(SLIB_iup_mglplot): $(OBJS_iup_mglplot)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iup_mglplot) $(DLIB_iup_mglplot) : $(OBJS_iup_mglplot)
	g++ -s -shared -o $(ILIB_iup_mglplot) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iup_mglplot) $(LF_iup_mglplot) $(LF_ALL)
	-strip $(ILIB_iup_mglplot)

iup_mglplot-static: build-dirs $(SLIB_iup_mglplot)
iup_mglplot-dynamic: build-dirs $(ILIB_iup_mglplot) $(DLIB_iup_mglplot)

### START OF iupgl ###
CF_iupgl   = -c  -Wall -O2 -Iinclude -Isrc    $(CF_iupgl_EXTRA)
LF_iupgl   = -liup -lglaux -lglu32 -lopengl32 -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iupgl_EXTRA)
SLIB_iupgl = ./lib/$(BUILDNICK)/libiupgl.a
DLIB_iupgl = ./lib/$(BUILDNICK)/libiupgl.dll.a
ILIB_iupgl = ./lib/$(BUILDNICK)/iupgl_alien_.dll
OBJS_iupgl = ./obj/$(BUILDNICK)/iupgl/iup_glcanvas_win.o

./obj/$(BUILDNICK)/iupgl/iup_glcanvas_win.o : srcgl/iup_glcanvas_win.c ; gcc $(CF_ALL) $(CF_iupgl) $^ -o $@

$(SLIB_iupgl): $(OBJS_iupgl)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iupgl) $(DLIB_iupgl) : $(OBJS_iupgl)
	g++ -s -shared -o $(ILIB_iupgl) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iupgl) $(LF_iupgl) $(LF_ALL)
	-strip $(ILIB_iupgl)

iupgl-static: build-dirs $(SLIB_iupgl)
iupgl-dynamic: build-dirs $(ILIB_iupgl) $(DLIB_iupgl)

### START OF iupim ###
CF_iupim   = -c  -Wall -O2 -Iinclude -Isrc -I../im/include    $(CF_iupim_EXTRA)
LF_iupim   = -L../im/lib/$(BUILDNICK) -liup -lim -lzlib1 -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iupim_EXTRA)
SLIB_iupim = ./lib/$(BUILDNICK)/libiupim.a
DLIB_iupim = ./lib/$(BUILDNICK)/libiupim.dll.a
ILIB_iupim = ./lib/$(BUILDNICK)/iupim_alien_.dll
OBJS_iupim = ./obj/$(BUILDNICK)/iupim/iup_im.o

./obj/$(BUILDNICK)/iupim/iup_im.o : srcim/iup_im.c ; gcc $(CF_ALL) $(CF_iupim) $^ -o $@

$(SLIB_iupim): $(OBJS_iupim)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iupim) $(DLIB_iupim) : $(OBJS_iupim)
	g++ -s -shared -o $(ILIB_iupim) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iupim) $(LF_iupim) $(LF_ALL)
	-strip $(ILIB_iupim)

iupim-static: build-dirs $(SLIB_iupim)
iupim-dynamic: build-dirs $(ILIB_iupim) $(DLIB_iupim)

### START OF iupimglib ###
CF_iupimglib   = -c  -Wall -Iinclude -Isrc    $(CF_iupimglib_EXTRA)
LF_iupimglib   = -liup -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iupimglib_EXTRA)
SLIB_iupimglib = ./lib/$(BUILDNICK)/libiupimglib.a
DLIB_iupimglib = ./lib/$(BUILDNICK)/libiupimglib.dll.a
ILIB_iupimglib = ./lib/$(BUILDNICK)/iupimglib_alien_.dll
OBJS_iupimglib = ./obj/$(BUILDNICK)/iupimglib/iup_image_library.o ./obj/$(BUILDNICK)/iupimglib/iup_imglib_bitmapsgtk.o ./obj/$(BUILDNICK)/iupimglib/iup_imglib_icons.o ./obj/$(BUILDNICK)/iupimglib/iup_imglib_logos.o ./obj/$(BUILDNICK)/iupimglib/iup_imglib_bitmaps.o ./obj/$(BUILDNICK)/iupimglib/iup_imglib_logosw32.o

./obj/$(BUILDNICK)/iupimglib/iup_image_library.o : srcimglib/iup_image_library.c ; gcc $(CF_ALL) $(CF_iupimglib) $^ -o $@
./obj/$(BUILDNICK)/iupimglib/iup_imglib_bitmapsgtk.o : srcimglib/iup_imglib_bitmapsgtk.c ; gcc $(CF_ALL) $(CF_iupimglib) $^ -o $@
./obj/$(BUILDNICK)/iupimglib/iup_imglib_icons.o : srcimglib/iup_imglib_icons.c ; gcc $(CF_ALL) $(CF_iupimglib) $^ -o $@
./obj/$(BUILDNICK)/iupimglib/iup_imglib_logos.o : srcimglib/iup_imglib_logos.c ; gcc $(CF_ALL) $(CF_iupimglib) $^ -o $@
./obj/$(BUILDNICK)/iupimglib/iup_imglib_bitmaps.o : srcimglib/iup_imglib_bitmaps.c ; gcc $(CF_ALL) $(CF_iupimglib) $^ -o $@
./obj/$(BUILDNICK)/iupimglib/iup_imglib_logosw32.o : srcimglib/iup_imglib_logosw32.c ; gcc $(CF_ALL) $(CF_iupimglib) $^ -o $@

$(SLIB_iupimglib): $(OBJS_iupimglib)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iupimglib) $(DLIB_iupimglib) : $(OBJS_iupimglib)
	g++ -s -shared -o $(ILIB_iupimglib) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iupimglib) $(LF_iupimglib) $(LF_ALL)
	-strip $(ILIB_iupimglib)

iupimglib-static: build-dirs $(SLIB_iupimglib)
iupimglib-dynamic: build-dirs $(ILIB_iupimglib) $(DLIB_iupimglib)

### START OF iupole ###
CF_iupole   = -c  -Wall -O2 -Iinclude -Isrc    $(CF_iupole_EXTRA)
LF_iupole   = -liup -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iupole_EXTRA)
SLIB_iupole = ./lib/$(BUILDNICK)/libiupole.a
DLIB_iupole = ./lib/$(BUILDNICK)/libiupole.dll.a
ILIB_iupole = ./lib/$(BUILDNICK)/iupole_alien_.dll
OBJS_iupole = ./obj/$(BUILDNICK)/iupole/iup_olecontrol.o ./obj/$(BUILDNICK)/iupole/tLegacy.o ./obj/$(BUILDNICK)/iupole/tAmbientProperties.o ./obj/$(BUILDNICK)/iupole/tDispatch.o ./obj/$(BUILDNICK)/iupole/tOleClientSite.o ./obj/$(BUILDNICK)/iupole/tOleControlSite.o ./obj/$(BUILDNICK)/iupole/tOleHandler.o ./obj/$(BUILDNICK)/iupole/tOleInPlaceFrame.o ./obj/$(BUILDNICK)/iupole/tOleInPlaceSite.o

./obj/$(BUILDNICK)/iupole/iup_olecontrol.o : srcole/iup_olecontrol.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@
./obj/$(BUILDNICK)/iupole/tLegacy.o : srcole/tLegacy.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@
./obj/$(BUILDNICK)/iupole/tAmbientProperties.o : srcole/tAmbientProperties.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@
./obj/$(BUILDNICK)/iupole/tDispatch.o : srcole/tDispatch.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@
./obj/$(BUILDNICK)/iupole/tOleClientSite.o : srcole/tOleClientSite.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@
./obj/$(BUILDNICK)/iupole/tOleControlSite.o : srcole/tOleControlSite.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@
./obj/$(BUILDNICK)/iupole/tOleHandler.o : srcole/tOleHandler.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@
./obj/$(BUILDNICK)/iupole/tOleInPlaceFrame.o : srcole/tOleInPlaceFrame.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@
./obj/$(BUILDNICK)/iupole/tOleInPlaceSite.o : srcole/tOleInPlaceSite.cpp ; g++ $(CF_ALL) $(CF_iupole) $^ -o $@

$(SLIB_iupole): $(OBJS_iupole)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iupole) $(DLIB_iupole) : $(OBJS_iupole)
	g++ -s -shared -o $(ILIB_iupole) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iupole) $(LF_iupole) $(LF_ALL)
	-strip $(ILIB_iupole)

iupole-static: build-dirs $(SLIB_iupole)
iupole-dynamic: build-dirs $(ILIB_iupole) $(DLIB_iupole)

### START OF iuptuio ###
CF_iuptuio   = -c  -Wall -O2 -Iinclude -Isrc -Isrctuio/tuio -Isrctuio/oscpack   -DOSC_HOST_LITTLE_ENDIAN $(CF_iuptuio_EXTRA)
LF_iuptuio   = -liup -lws2_32 -lwinmm -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 $(LF_iuptuio_EXTRA)
SLIB_iuptuio = ./lib/$(BUILDNICK)/libiuptuio.a
DLIB_iuptuio = ./lib/$(BUILDNICK)/libiuptuio.dll.a
ILIB_iuptuio = ./lib/$(BUILDNICK)/iuptuio_alien_.dll
OBJS_iuptuio = ./obj/$(BUILDNICK)/iuptuio/TuioClient.o ./obj/$(BUILDNICK)/iuptuio/TuioServer.o ./obj/$(BUILDNICK)/iuptuio/TuioTime.o ./obj/$(BUILDNICK)/iuptuio/OscTypes.o ./obj/$(BUILDNICK)/iuptuio/OscOutboundPacketStream.o ./obj/$(BUILDNICK)/iuptuio/OscReceivedElements.o ./obj/$(BUILDNICK)/iuptuio/OscPrintReceivedElements.o ./obj/$(BUILDNICK)/iuptuio/iup_tuio.o ./obj/$(BUILDNICK)/iuptuio/NetworkingUtils.o ./obj/$(BUILDNICK)/iuptuio/UdpSocket.o

./obj/$(BUILDNICK)/iuptuio/TuioClient.o : srctuio/tuio/TuioClient.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/TuioServer.o : srctuio/tuio/TuioServer.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/TuioTime.o : srctuio/tuio/TuioTime.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/OscTypes.o : srctuio/oscpack/osc/OscTypes.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/OscOutboundPacketStream.o : srctuio/oscpack/osc/OscOutboundPacketStream.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/OscReceivedElements.o : srctuio/oscpack/osc/OscReceivedElements.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/OscPrintReceivedElements.o : srctuio/oscpack/osc/OscPrintReceivedElements.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/iup_tuio.o : srctuio/iup_tuio.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/NetworkingUtils.o : srctuio/oscpack/ip/win32/NetworkingUtils.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@
./obj/$(BUILDNICK)/iuptuio/UdpSocket.o : srctuio/oscpack/ip/win32/UdpSocket.cpp ; g++ $(CF_ALL) $(CF_iuptuio) $^ -o $@

$(SLIB_iuptuio): $(OBJS_iuptuio)
	$(AR) $(ARFLAGS) $@ $^

$(ILIB_iuptuio) $(DLIB_iuptuio) : $(OBJS_iuptuio)
	g++ -s -shared -o $(ILIB_iuptuio) $^ -Wl,--enable-auto-import,--export-all -Wl,--out-implib=$(DLIB_iuptuio) $(LF_iuptuio) $(LF_ALL)
	-strip $(ILIB_iuptuio)

iuptuio-static: build-dirs $(SLIB_iuptuio)
iuptuio-dynamic: build-dirs $(ILIB_iuptuio) $(DLIB_iuptuio)

### compile RC

$(VER_OBJ) : $(VER_RC) ; windres --define GCC_WINDRES $^ -o $@

all: build-dirs $(STATIC_LIBS) $(DYNAMIC_LIBS)
all-static: build-dirs $(STATIC_LIBS)
all-dynamic: build-dirs $(DYNAMIC_LIBS)

install-all:
	$(MKPATH) "$(LIBDIR)"
	$(MKPATH) "$(INCDIR)"
	$(CP) ./lib/$(BUILDNICK)/* "$(LIBDIR)"
	$(CP) ./include/*.h "$(INCDIR)"

install-static: all-static
	$(MKPATH) "$(LIBDIR)"
	$(MKPATH) "$(INCDIR)"
	$(CP) $(STATIC_LIBS) "$(LIBDIR)"
	$(CP) ./include/*.h "$(INCDIR)"

install-dynamic: all-dynamic
	$(MKPATH) "$(LIBDIR)"
	$(MKPATH) "$(INCDIR)"
	$(CP) $(DYNAMIC_LIBS) "$(LIBDIR)"
	$(CP) ./include/*.h "$(INCDIR)"

build-dirs:
	$(MKPATH) $(BUILD_DIRS)

clean:
	$(RM_F) $(ALL_OBJS) $(ALL_LIBS) $(VER_OBJ)