Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 1 | # Global rules for building a Winelib program -*-Makefile-*- |
| 2 | # |
| 3 | # Each individual makefile should define the following variables: |
| 4 | # MODULE : name of the main module being built |
Vincent Béron | 6cef9c0 | 2005-03-05 10:47:42 +0000 | [diff] [blame] | 5 | # APPMODE : program mode (-mwindows,-mconsole) |
Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 6 | # EXTRALIBS : extra libraries to link in (optional) |
| 7 | # EXTRADEFS : extra symbol definitions, like -DWINELIB (optional) |
| 8 | # |
| 9 | # plus all variables required by the global Make.rules.in |
| 10 | # |
| 11 | |
Vincent Béron | 1f50414 | 2004-10-19 23:06:11 +0000 | [diff] [blame] | 12 | DLLDEFS = @DLLDEFS@ |
Alexandre Julliard | 16cd861 | 2003-09-24 19:01:44 +0000 | [diff] [blame] | 13 | DLLFLAGS = @DLLFLAGS@ |
Alexandre Julliard | 1fd32cf | 2006-03-20 22:08:26 +0100 | [diff] [blame] | 14 | LDRPATH = @LDDLLRPATH@ |
Vincent Béron | 1f50414 | 2004-10-19 23:06:11 +0000 | [diff] [blame] | 15 | DEFS = $(DLLDEFS) $(EXTRADEFS) |
Alexandre Julliard | 2dabac0 | 2005-05-06 15:54:41 +0000 | [diff] [blame] | 16 | ALL_IMPORTS = $(DELAYIMPORTS) $(IMPORTS) |
Alexandre Julliard | 5319db6 | 2006-03-16 16:28:43 +0100 | [diff] [blame] | 17 | ALL_LIBS = $(ALL_IMPORTS:%=-l%) -L$(LIBDIR) -lwine $(EXTRALIBS) $(LIBPORT) $(LDFLAGS) $(LIBS) |
Alexandre Julliard | cc2ee76 | 2002-05-21 19:42:29 +0000 | [diff] [blame] | 18 | BASEMODULE = $(MODULE:.exe=) |
Alexandre Julliard | 6621b2d | 2004-03-02 21:00:00 +0000 | [diff] [blame] | 19 | RUNTESTFLAGS= -q -P wine -T $(TOPOBJDIR) |
Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 20 | |
| 21 | @MAKE_RULES@ |
| 22 | |
Alexandre Julliard | cc2ee76 | 2002-05-21 19:42:29 +0000 | [diff] [blame] | 23 | all: $(MODULE)$(DLLEXT) $(BASEMODULE)$(EXEEXT) |
Alexandre Julliard | fc01b72 | 2002-05-12 03:16:39 +0000 | [diff] [blame] | 24 | |
Alexandre Julliard | fc01b72 | 2002-05-12 03:16:39 +0000 | [diff] [blame] | 25 | # Rules for .so main module |
Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 26 | |
Alexandre Julliard | 7ddab75 | 2005-09-28 18:34:00 +0000 | [diff] [blame] | 27 | $(MODULE).so: $(OBJS) $(RC_SRCS:.rc=.res) Makefile.in |
Alexandre Julliard | 1fd32cf | 2006-03-20 22:08:26 +0100 | [diff] [blame] | 28 | $(WINEGCC) -B$(TOOLSDIR)/tools/winebuild $(APPMODE) $(OBJS) $(RC_SRCS:.rc=.res) -o $@ $(LDRPATH) -L$(DLLDIR) $(ALL_LIBS) $(DELAYIMPORTS:%=-Wb,-d%) |
Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 29 | |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 30 | $(BASEMODULE): $(WINEWRAPPER) |
| 31 | $(RM) $@ && $(LN_S) $(WINEWRAPPER) $@ |
Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 32 | |
Alexandre Julliard | fc01b72 | 2002-05-12 03:16:39 +0000 | [diff] [blame] | 33 | # Rules for .exe main module |
| 34 | |
Alexandre Julliard | 7ddab75 | 2005-09-28 18:34:00 +0000 | [diff] [blame] | 35 | $(MODULE): $(OBJS) $(RCOBJS) Makefile.in |
| 36 | $(CC) $(APPMODE) $(OBJS) $(RCOBJS) -o $@ $(ALL_LIBS) |
Alexandre Julliard | fc01b72 | 2002-05-12 03:16:39 +0000 | [diff] [blame] | 37 | |
Alexandre Julliard | 13b0c09 | 2002-01-10 03:30:21 +0000 | [diff] [blame] | 38 | # Rules for testing |
| 39 | |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 40 | check test:: $(SUBDIRS:%=%/__test__) |
| 41 | |
| 42 | $(TESTRESULTS): $(MODULE)$(DLLEXT) |
Alexandre Julliard | 13b0c09 | 2002-01-10 03:30:21 +0000 | [diff] [blame] | 43 | |
Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 44 | # Rules for installation |
| 45 | |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 46 | .PHONY: install_prog install_prog.so uninstall_prog uninstall_prog.so |
Alexandre Julliard | fc01b72 | 2002-05-12 03:16:39 +0000 | [diff] [blame] | 47 | |
Alexandre Julliard | f673b71 | 2002-06-14 23:48:27 +0000 | [diff] [blame] | 48 | install_prog.so: $(MODULE).so dummy |
Mike Frysinger | 5392844 | 2006-02-14 13:51:38 +0100 | [diff] [blame] | 49 | $(MKINSTALLDIRS) $(DESTDIR)$(dlldir) |
| 50 | $(INSTALL_PROGRAM) $(MODULE).so $(DESTDIR)$(dlldir)/$(MODULE).so |
Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 51 | |
Alexandre Julliard | f673b71 | 2002-06-14 23:48:27 +0000 | [diff] [blame] | 52 | install_prog: $(MODULE) dummy |
Mike Frysinger | 5392844 | 2006-02-14 13:51:38 +0100 | [diff] [blame] | 53 | $(MKINSTALLDIRS) $(DESTDIR)$(bindir) |
| 54 | $(INSTALL_PROGRAM) $(MODULE) $(DESTDIR)$(bindir)/$(MODULE) |
Alexandre Julliard | fc01b72 | 2002-05-12 03:16:39 +0000 | [diff] [blame] | 55 | |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 56 | uninstall_prog.so: dummy |
Mike Frysinger | 5392844 | 2006-02-14 13:51:38 +0100 | [diff] [blame] | 57 | $(RM) $(DESTDIR)$(dlldir)/$(MODULE).so |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 58 | |
| 59 | uninstall_prog: dummy |
Mike Frysinger | 5392844 | 2006-02-14 13:51:38 +0100 | [diff] [blame] | 60 | $(RM) $(DESTDIR)$(bindir)/$(MODULE) |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 61 | |
Alexandre Julliard | cc2ee76 | 2002-05-21 19:42:29 +0000 | [diff] [blame] | 62 | install:: install_prog$(DLLEXT) |
Alexandre Julliard | fc01b72 | 2002-05-12 03:16:39 +0000 | [diff] [blame] | 63 | |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 64 | uninstall:: uninstall_prog$(DLLEXT) |
Alexandre Julliard | 626f425 | 2000-11-10 23:35:20 +0000 | [diff] [blame] | 65 | |
| 66 | clean:: |
Alexandre Julliard | cc2ee76 | 2002-05-21 19:42:29 +0000 | [diff] [blame] | 67 | $(RM) $(BASEMODULE) $(MODULE) |