| 
									
										
										
										
											2016-09-28 14:40:37 +00:00
										 |  |  | AUTOMAKE_OPTION = foreign | 
					
						
							|  |  |  | ACLOCAL_AMFLAGS = -I m4 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-02 23:58:15 +09:00
										 |  |  | EXTRA_DIST = t t/test-bi.hak | 
					
						
							| 
									
										
										
										
											2016-09-28 14:40:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-15 15:36:15 +00:00
										 |  |  | SUBDIRS = | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ENABLE_STATIC_MODULE | 
					
						
							| 
									
										
										
										
											2022-02-21 15:22:22 +00:00
										 |  |  | SUBDIRS += mod lib bin t | 
					
						
							| 
									
										
										
										
											2018-02-15 15:36:15 +00:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2022-02-21 15:22:22 +00:00
										 |  |  | SUBDIRS += lib mod bin t | 
					
						
							| 
									
										
										
										
											2018-02-15 15:36:15 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-02 14:57:46 +09:00
										 |  |  | DIST_SUBDIRS = $(SUBDIRS) pas | 
					
						
							| 
									
										
										
										
											2016-09-28 14:40:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | distclean-local: | 
					
						
							|  |  |  | 	@rm -rf $(top_srcdir)/autom4te.cache | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | clean-local: | 
					
						
							|  |  |  | 	rm -rf $(builddir)/go.mod $(builddir)/go.sum | 
					
						
							| 
									
										
										
										
											2025-10-19 12:24:15 +09:00
										 |  |  | 	go clean -C $(srcdir) -x -modfile $(abs_builddir)/go.mod -cache | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-02 23:58:15 +09:00
										 |  |  | if ENABLE_HAKGO | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## the attempt to compose a proper procedure using a regular compiler failed.
 | 
					
						
							|  |  |  | ## e.g ./configure GOC=opt/go/pkg/tool/linux_amd64/
 | 
					
						
							|  |  |  | ## while go.m4 is included in autoconf 2.71, the support for the go language
 | 
					
						
							|  |  |  | ## is very limited and the go language itself is pursuing the module based builder.
 | 
					
						
							|  |  |  | ##
 | 
					
						
							|  |  |  | ## the following is to trick autoconf/automake as if it's building go files with
 | 
					
						
							|  |  |  | ## a real compiler whereas the actual building is done thru `go build`
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-02 23:58:15 +09:00
										 |  |  | bin_PROGRAMS = hakgo | 
					
						
							|  |  |  | hakgo_SOURCES = \
 | 
					
						
							|  |  |  | 	go/hak.go \
 | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | 	go/cb.go \
 | 
					
						
							|  |  |  | 	go/inst.go \
 | 
					
						
							|  |  |  | 	main.go \
 | 
					
						
							|  |  |  | 	go.mod | 
					
						
							| 
									
										
										
										
											2025-09-02 23:58:15 +09:00
										 |  |  | hakgo_DEPENDENCIES = hakgo.bin | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-02 23:58:15 +09:00
										 |  |  | ## let the linker to move hakgo.bin to the actual target
 | 
					
						
							|  |  |  | hakgo_LINK = cp -pf hakgo.bin hakgo$(EXEEXT) || echo "FAILED TO LINK" | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-07 12:54:16 +09:00
										 |  |  | if ENABLE_STATIC | 
					
						
							|  |  |  | CGO_CFLAGS_EXTRA="-static" | 
					
						
							|  |  |  | CGO_LDFLAGS_EXTRA="-static" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | CGO_CFLAGS_EXTRA="" | 
					
						
							|  |  |  | CGO_LDFLAGS_EXTRA="" | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-02 23:58:15 +09:00
										 |  |  | hakgo.bin: lib/libhak.la $(hakgo_OBJECTS) | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | 	cp -pf $(srcdir)/go.mod $(builddir)/go.mod >/dev/null 2>&1 || true | 
					
						
							|  |  |  | 	chmod u+w $(builddir)/go.mod ## with `make distcheck`, the echo's redirection to the file fails without this permission change | 
					
						
							|  |  |  | 	[ -f $(srcdir)/go.sum ] && cp -pf $(srcdir)/go.sum $(builddir)/go.sum >/dev/null 2>&1 || true | 
					
						
							| 
									
										
										
										
											2023-11-01 01:42:47 +09:00
										 |  |  | 	## --------------------------------------------------------------- | 
					
						
							|  |  |  | 	CC=$(CC) \
 | 
					
						
							| 
									
										
										
										
											2024-09-07 12:54:16 +09:00
										 |  |  | 	CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS) $(CGO_CFLAGS_EXTRA)" \
 | 
					
						
							| 
									
										
										
										
											2025-09-02 23:58:15 +09:00
										 |  |  | 	CGO_LDFLAGS="-L$(abs_builddir)/lib -L$(abs_builddir)/lib/.libs -lhak -ldl $(LIBM) $(CGO_LDFLAGS_EXTRA)"  \
 | 
					
						
							|  |  |  | 	go build -C $(srcdir) -ldflags "-X 'main.BINDIR=$(bindir)' -X 'main.SBINDIR=$(sbindir)' -X 'main.LIBDIR=$(libdir)' -X 'main.SYSCONFDIR=$(sysconfdir)'" -x -o $(abs_builddir)/hakgo.bin -modfile $(abs_builddir)/go.mod | 
					
						
							| 
									
										
										
										
											2023-11-01 01:42:47 +09:00
										 |  |  | 	## --------------------------------------------------------------- | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | 	go clean -C $(srcdir) -x -modfile $(abs_builddir)/go.mod | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## the go to o recipe is fake to deceive make
 | 
					
						
							|  |  |  | .go.o: | 
					
						
							|  |  |  | 	echo $< > $@ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .mod.o: | 
					
						
							|  |  |  | 	echo $< > $@ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-23 01:11:13 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-29 21:40:05 +09:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |