summaryrefslogtreecommitdiffstats
path: root/utils/lmbench/Makefile
blob: 91866a1ddb08808efa00b7ea9fa452d1afd93708 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#
# Copyright (C) 2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=lmbench
PKG_VERSION:=3.0-a9
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=@SF/lmbench/
PKG_MD5SUM:=b3351a3294db66a72e2864a199d37cbf

PKG_BUILD_DEPENDS:=librpc

include $(INCLUDE_DIR)/package.mk

define Package/lmbench
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=lmbench microbenchmarks
  URL:=http://sourceforge.net/projects/lmbench
  MENU:=1
endef

define Package/lmbench/description
  lmbench is a series of micro benchmarks intended to measure basic operating
  system and hardware system metrics.
endef

define Package/lmbench/install
	true
endef

define Build/Compile
	$(MAKE) -C $(PKG_BUILD_DIR)/src \
		CC="$(TARGET_CC)" \
		AR="$(TARGET_CROSS)ar" \
		OS="$(ARCH)" \
		BASE="$(PKG_INSTALL_DIR)" \
		LDLIBS="-lrpc" \
		COMPILE="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)" \
		lmbench install
endef

define PartGen
define Package/lmbench-$(subst _,-,$(1))
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=$(1) microbenchmark
  URL:=http://sourceforge.net/projects/lmbench
  DEPENDS:=lmbench +librpc
endef
endef

define PartInstall
define Package/lmbench-$(subst _,-,$(1))/install
	$(INSTALL_DIR) $$(1)/usr/sbin
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/$(1) $$(1)/usr/sbin/$(1)
endef
endef

LMBENCH_FILES:= \
	bw_file_rd \
	bw_mem \
	bw_mmap_rd \
	bw_pipe \
	bw_tcp \
	bw_unix \
	cache \
	disk \
	enough \
	flushdisk \
	hello \
	lat_cmd \
	lat_connect \
	lat_ctx \
	lat_dram_page \
	lat_fcntl \
	lat_fifo \
	lat_fs \
	lat_http \
	lat_mem_rd \
	lat_mmap \
	lat_ops \
	lat_pagefault \
	lat_pipe \
	lat_pmake \
	lat_proc \
	lat_rand \
	lat_rpc \
	lat_select \
	lat_sem \
	lat_sig \
	lat_syscall \
	lat_tcp \
	lat_udp \
	lat_unix \
	lat_unix_connect \
	lat_usleep \
	line \
	lmdd \
	lmhttp \
	loop_o \
	memsize \
	mhz \
	msleep \
	par_mem \
	par_ops \
	stream \
	timing_o \
	tlb

$(foreach file,$(LMBENCH_FILES),$(eval $(call PartGen,$(file))))
$(foreach file,$(LMBENCH_FILES),$(eval $(call PartInstall,$(file))))

$(eval $(call BuildPackage,lmbench))
$(foreach file,$(LMBENCH_FILES),$(eval $(call BuildPackage,lmbench-$(subst _,-,$(file)))))