FLTKCONFIG=@FLTKCONFIG@ CXX = $(shell $(FLTKCONFIG) --cxx) $(shell $(FLTKCONFIG) --cxxflags) -Wall -DINTERNAL_LINKAGE -g -Icpp -I../ CXXSHARED = $(CXX) CXXSTATIC = $(CXX) -static GLSUPPORT = @GLSUPPORT@ ifdef GLSUPPORT FLTKCONFIGCOMMAND = $(shell $(FLTKCONFIG) --use-images --use-glut --use-forms --use-gl --ldflags) GL_FILES = \ glC.cpp \ glutC.cpp \ Fl_Gl_WindowC.cpp else FLTKCONFIGCOMMAND = $(shell $(FLTKCONFIG) --use-images --use-forms --ldflags) endif CPPFILES= $(GL_FILES) \ Fl_Menu_ButtonC.cpp \ Fl_PositionerC.cpp \ Fl_Value_OutputC.cpp \ Fl_Value_SliderC.cpp \ Fl_ScrollbarC.cpp \ Fl_ScrollC.cpp \ Fl_RollerC.cpp \ Fl_DialC.cpp \ Fl_CounterC.cpp \ Fl_SpinnerC.cpp \ UtilsC.cpp \ xC.cpp \ fl_utf8C.cpp \ Fl_CallbackC.cpp \ DerivedText_Editor.cpp \ DerivedShared_Image.cpp \ filenameC.cpp \ Fl_AskC.cpp \ Fl_BitmapC.cpp \ Fl_BoxC.cpp \ Fl_BrowserC.cpp \ Fl_ButtonC.cpp \ Fl_C.cpp \ Fl_Check_ButtonC.cpp \ Fl_ChoiceC.cpp \ Fl_ClockC.cpp \ Fl_Color_ChooserC.cpp \ Fl_Copy_SurfaceC.cpp \ Fl_Double_WindowC.cpp \ Fl_DrawC.cpp \ Fl_DeviceC.cpp \ Fl_EnumerationsC.cpp \ Fl_File_BrowserC.cpp \ Fl_File_IconC.cpp \ Fl_File_InputC.cpp \ Fl_File_ChooserC.cpp \ Fl_Float_InputC.cpp \ Fl_GroupC.cpp \ Fl_Hold_BrowserC.cpp \ Fl_Image_SurfaceC.cpp \ Fl_ImageC.cpp \ Fl_JPEG_ImageC.cpp \ Fl_Input_C.cpp \ Fl_InputC.cpp \ Fl_Int_InputC.cpp \ Fl_Light_ButtonC.cpp \ Fl_Menu_C.cpp \ Fl_Menu_ItemC.cpp \ Fl_Multi_BrowserC.cpp \ Fl_Multiline_InputC.cpp \ Fl_Multiline_OutputC.cpp \ Fl_Native_File_ChooserC.cpp \ Fl_OutputC.cpp \ Fl_Overlay_WindowC.cpp \ Fl_Paged_DeviceC.cpp \ Fl_PixmapC.cpp \ Fl_PNM_ImageC.cpp \ Fl_PNG_ImageC.cpp \ Fl_XBM_ImageC.cpp \ Fl_XPM_ImageC.cpp \ Fl_GIF_ImageC.cpp \ Fl_BMP_ImageC.cpp \ Fl_PreferencesC.cpp \ Fl_PrinterC.cpp \ Fl_ProgressC.cpp \ Fl_Radio_ButtonC.cpp \ Fl_Radio_Light_ButtonC.cpp \ Fl_Repeat_ButtonC.cpp \ Fl_Return_ButtonC.cpp \ Fl_RGB_ImageC.cpp \ Fl_Round_ButtonC.cpp \ Fl_Round_ClockC.cpp \ Fl_Secret_InputC.cpp \ Fl_Select_BrowserC.cpp \ Fl_Shared_ImageC.cpp \ fl_show_colormapC.cpp \ Fl_Single_WindowC.cpp \ Fl_SliderC.cpp \ Fl_Menu_BarC.cpp \ Fl_Sys_Menu_BarC.cpp \ Fl_TableC.cpp \ Fl_Table_RowC.cpp \ Fl_TabsC.cpp \ Fl_Text_BufferC.cpp \ Fl_Text_DisplayC.cpp \ Fl_Text_EditorC.cpp \ Fl_Text_SelectionC.cpp \ Fl_TileC.cpp \ Fl_PackC.cpp \ Fl_Toggle_ButtonC.cpp \ Fl_TooltipC.cpp \ Fl_TreeC.cpp \ Fl_Tree_ItemC.cpp \ Fl_Tree_PrefsC.cpp \ Fl_ValuatorC.cpp \ Fl_AdjusterC.cpp \ Fl_Value_InputC.cpp \ Fl_Value_SliderC.cpp \ Fl_WidgetC.cpp \ Fl_WindowC.cpp \ Fl_WizardC.cpp LIBNAME = libfltkc OBJECTS = $(CPPFILES:.cpp=.o) LIBDIR = ../c-lib SHARED_OBJECT_FILES = ../shared_object_files STATIC_OBJECT_FILES = ../static_object_files ifeq ($(shell uname) , Darwin) SHARED_EXT=dylib SONAME_FLAGS=-dynamiclib -install_name else SHARED_EXT=so SONAME_FLAGS= -shared -Wl,-soname endif ifdef MSYSTEM else FPIC= -fPIC endif .SILENT: all: libfltkc.a libfltkc-dyn.$(SHARED_EXT) .SUFFIXES: .cpp .o .cpp.o: test -d $(STATIC_OBJECT_FILES) || mkdir $(STATIC_OBJECT_FILES) test -d $(SHARED_OBJECT_FILES) || mkdir $(SHARED_OBJECT_FILES) @echo "*** Compiling $<..." $(CXXSTATIC) -Wno-attributes -Wall -c $(FPIC) $^ -o $(STATIC_OBJECT_FILES)/$@ $(CXXSHARED) -Wno-attributes -Wall -c $(FPIC) $^ -o $(SHARED_OBJECT_FILES)/$@ libfltkc.a : $(OBJECTS) test -d $(LIBDIR) || mkdir $(LIBDIR) @echo "*** Linking $@..." (cd $(STATIC_OBJECT_FILES); \ ar rcs $(LIBDIR)/$@ $^;) libfltkc-dyn.so : $(OBJECTS) test -d $(LIBDIR) || mkdir $(LIBDIR) @echo "*** Linking $@..." (cd $(SHARED_OBJECT_FILES); \ $(CXX) -Wno-attributes -Wall $(SONAME_FLAGS),$(LIBDIR)/$@ -o $(LIBDIR)/$@ $^ $(FLTKCONFIGCOMMAND)); libfltkc-dyn.dylib: $(OBJECTS) test -d $(LIBDIR) || mkdir $(LIBDIR) @echo "*** Linking $@..." (cd $(SHARED_OBJECT_FILES); \ $(CXX) -Wno-attributes -Wall $(SONAME_FLAGS),$(LIBDIR)/$@ -o $(LIBDIR)/$@ $^ $(FLTKCONFIGCOMMAND) -L/usr/local/lib); clean: test -d $(LIBDIR) && rm -rf $(LIBDIR) test -d $(SHARED_OBJECT_FILES) && rm -rf $(SHARED_OBJECT_FILES) test -d $(STATIC_OBJECT_FILES) && rm -rf $(STATIC_OBJECT_FILES)