Alien-IUP
view release on metacpan or search on metacpan
patches/Makefile_iup.mingw view on Meta::CPAN
#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)/iupgl ./obj/$(BUILDNICK)/iupglcontrols ./obj/$(BUILDNICK)/iupim ./obj/$(BUILDNICK)/iupimglib ./obj/$(BUILDNICK)/iupmatrixex ./obj/$(BUILD...
ALL_OBJS = $(OBJS_iup) $(OBJS_iupcd) $(OBJS_iupcontrols) $(OBJS_iupgl) $(OBJS_iupglcontrols) $(OBJS_iupim) $(OBJS_iupimglib) $(OBJS_iupmatrixex) $(OBJS_iupole) $(OBJS_iup_mglplot) $(OBJS_iup_plot) $(OBJS_iup_scintilla) $(OBJS_iuptuio)
STATIC_LIBS = $(SLIB_iup) $(SLIB_iupcd) $(SLIB_iupcontrols) $(SLIB_iupgl) $(SLIB_iupglcontrols) $(SLIB_iupim) $(SLIB_iupimglib) $(SLIB_iupmatrixex) $(SLIB_iupole) $(SLIB_iup_mglplot) $(SLIB_iup_plot) $(SLIB_iup_scintilla) $(SLIB_iuptuio)
DYNAMIC_LIBS = $(DLIB_iup) $(ILIB_iup) $(DLIB_iupcd) $(ILIB_iupcd) $(DLIB_iupcontrols) $(ILIB_iupcontrols) $(DLIB_iupgl) $(ILIB_iupgl) $(DLIB_iupglcontrols) $(ILIB_iupglcontrols) $(DLIB_iupim) $(ILIB_iupim) $(DLIB_iupimglib) $(ILIB_iupimglib) $(DLIB_...
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=0x600 -DWINVER=0x0501 -DNOTREEVIEW -DUNICODE -DIUP_DLL $(CF_iup_EXTRA)
LF_iup = -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -luuid -loleaut32 -lole32 -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/i...
./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_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_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_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_link.o : src/iup_link.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_scrollbox.o : src/iup_scrollbox.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/iup_progressdlg.o : src/iup_progressdlg.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_expander.o : src/iup_expander.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_table.o : src/iup_table.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_gridbox.o : src/iup_gridbox.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_detachbox.o : src/iup_detachbox.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_backgroundbox.o : src/iup_backgroundbox.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_linefile.o : src/iup_linefile.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_config.o : src/iup_config.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_flatbutton.o : src/iup_flatbutton.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_animatedlabel.o : src/iup_animatedlabel.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iup_draw.o : src/iup_draw.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_str.o : src/win/iupwin_str.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/iupwin_calendar.o : src/win/iupwin_calendar.c ; gcc $(CF_ALL) $(CF_iup) $^ -o $@
./obj/$(BUILDNICK)/iup/iupwin_datepick.o : src/win/iupwin_datepick.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 -Isrc -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 -luuid -loleaut32 -lole32 -lcomctl32 $(LF_iupcd_EXTRA)
SLIB_iupcd = ./lib/$(BUILDNICK)/libiupcd.a
( run in 1.624 second using v1.01-cache-2.11-cpan-f56aa216473 )